staging: most: return proper error
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Mon, 8 Feb 2016 17:56:46 +0000 (23:26 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Feb 2016 03:40:02 +0000 (19:40 -0800)
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>
drivers/staging/most/mostcore/core.c

index ab4c32d78d9f0545652dc81c5cf475e76c9d581a..322ee01e1f36085366debf665703410cd19c6691 100644 (file)
@@ -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)