diff options
author | Ricardo B. Marliere <ricardo@marliere.net> | 2024-03-05 08:25:23 -0300 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2024-03-13 09:23:49 +0100 |
commit | c8fba0c11f180418c9e4e89353c7f29d7c9e1915 (patch) | |
tree | 0fbf0b9913d9e89cb577d7d8171f30212f373940 /drivers/s390/char | |
parent | 520776557baae85f671a5cc324c27e3226f5ef81 (diff) | |
download | lwn-c8fba0c11f180418c9e4e89353c7f29d7c9e1915.tar.gz lwn-c8fba0c11f180418c9e4e89353c7f29d7c9e1915.zip |
s390/raw3270: improve raw3270_init() readability
Instead of checking if rc is 0, check whether it is non-zero and return
early if so. The call to class_create() can fail, so add a check to it and
move it out of the mutex region.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: "Ricardo B. Marliere" <ricardo@marliere.net>
Link: https://lore.kernel.org/r/20240305-class_cleanup-s390-v1-5-c4ff1ec49ffd@marliere.net
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'drivers/s390/char')
-rw-r--r-- | drivers/s390/char/raw3270.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index 7a5bda26edbd..899e86e5a689 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c @@ -1316,17 +1316,19 @@ static int raw3270_init(void) return 0; raw3270_registered = 1; rc = ccw_driver_register(&raw3270_ccw_driver); - if (rc == 0) { - /* Create attributes for early (= console) device. */ - mutex_lock(&raw3270_mutex); - class3270 = class_create("3270"); - list_for_each_entry(rp, &raw3270_devices, list) { - get_device(&rp->cdev->dev); - raw3270_create_attributes(rp); - } - mutex_unlock(&raw3270_mutex); + if (rc) + return rc; + class3270 = class_create("3270"); + if (IS_ERR(class3270)) + return PTR_ERR(class3270); + /* Create attributes for early (= console) device. */ + mutex_lock(&raw3270_mutex); + list_for_each_entry(rp, &raw3270_devices, list) { + get_device(&rp->cdev->dev); + raw3270_create_attributes(rp); } - return rc; + mutex_unlock(&raw3270_mutex); + return 0; } static void raw3270_exit(void) |