staging: speakup: fix failure handling
[profile/ivi/kernel-x86-ivi.git] / drivers / staging / speakup / kobjects.c
index cc79f9e..408bb9b 100644 (file)
@@ -984,8 +984,10 @@ int speakup_kobj_init(void)
         * not known ahead of time.
         */
        accessibility_kobj = kobject_create_and_add("accessibility", NULL);
-       if (!accessibility_kobj)
-               return -ENOMEM;
+       if (!accessibility_kobj) {
+               retval = -ENOMEM;
+               goto out;
+       }
 
        speakup_kobj = kobject_create_and_add("speakup", accessibility_kobj);
        if (!speakup_kobj) {
@@ -1002,7 +1004,7 @@ int speakup_kobj_init(void)
        if (retval)
                goto err_group;
 
-       return 0;
+       goto out;
 
 err_group:
        sysfs_remove_group(speakup_kobj, &main_attr_group);
@@ -1010,6 +1012,7 @@ err_speakup:
        kobject_put(speakup_kobj);
 err_acc:
        kobject_put(accessibility_kobj);
+out:
        return retval;
 }