]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/backlight/backlight.c
backlight: Fix error handling
[linux-2.6-omap-h63xx.git] / drivers / video / backlight / backlight.c
index 9601bfe309ac2744c922a1f612eb4b6188e12aa0..71056f8b621ac6de0b1b839090b9def38ff4575a 100644 (file)
@@ -240,13 +240,16 @@ struct backlight_device *backlight_device_register(const char *name,
 
        rc = class_device_register(&new_bd->class_dev);
        if (unlikely(rc)) {
-error:         kfree(new_bd);
+               kfree(new_bd);
                return ERR_PTR(rc);
        }
 
        rc = backlight_register_fb(new_bd);
-       if (unlikely(rc))
-               goto error;
+       if (rc) {
+               class_device_unregister(&new_bd->class_dev);
+               return ERR_PTR(rc);
+       }
+
 
        for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) {
                rc = class_device_create_file(&new_bd->class_dev,