diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2016-02-08 23:26:46 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-02-11 19:40:02 -0800 |
commit | cc4188b6bb44a68c49af981ef5ec410d66d5c84d (patch) | |
tree | 3d35e8151bafc01625b588a221f94112364e21fb /drivers/staging | |
parent | ea39854712ba8a0757bc9fa6b6c17e8808bc6fda (diff) | |
download | linux-cc4188b6bb44a68c49af981ef5ec410d66d5c84d.tar.bz2 |
staging: most: return proper error
We were returning ENOMEM on all types of errors. Lets return the actual
error code. At the same time remove the label which became unused as a
result of this patch.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/most/mostcore/core.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index ab4c32d78d9f..322ee01e1f36 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1854,40 +1854,52 @@ EXPORT_SYMBOL_GPL(most_resume_enqueue); static int __init most_init(void) { + int err; + pr_info("init()\n"); INIT_LIST_HEAD(&instance_list); INIT_LIST_HEAD(&aim_list); ida_init(&mdev_id); - if (bus_register(&most_bus)) { + err = bus_register(&most_bus); + if (err) { pr_info("Cannot register most bus\n"); - goto exit; + return err; } most_class = class_create(THIS_MODULE, "most"); if (IS_ERR(most_class)) { pr_info("No udev support.\n"); + err = PTR_ERR(most_class); goto exit_bus; } - if (driver_register(&mostcore)) { + + err = driver_register(&mostcore); + if (err) { pr_info("Cannot register core driver\n"); goto exit_class; } class_glue_dir = device_create(most_class, NULL, 0, NULL, "mostcore"); - if (IS_ERR(class_glue_dir)) + if (IS_ERR(class_glue_dir)) { + err = PTR_ERR(class_glue_dir); goto exit_driver; + } most_aim_kset = kset_create_and_add("aims", NULL, &class_glue_dir->kobj); - if (!most_aim_kset) + if (!most_aim_kset) { + err = -ENOMEM; goto exit_class_container; + } most_inst_kset = kset_create_and_add("devices", NULL, &class_glue_dir->kobj); - if (!most_inst_kset) + if (!most_inst_kset) { + err = -ENOMEM; goto exit_driver_kset; + } return 0; @@ -1901,8 +1913,7 @@ exit_class: class_destroy(most_class); exit_bus: bus_unregister(&most_bus); -exit: - return -ENOMEM; + return err; } static void __exit most_exit(void) |