]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/backlight/lcd.c
backlight: Fix error handling
[linux-2.6-omap-h63xx.git] / drivers / video / backlight / lcd.c
index f6e041627edbb874419cc146ecd6df167fbe67c1..f95f0e33101d9211e14a8cb5dedb927a95152a27 100644 (file)
@@ -206,14 +206,15 @@ struct lcd_device *lcd_device_register(const char *name, void *devdata,
 
        rc = class_device_register(&new_ld->class_dev);
        if (unlikely(rc)) {
-error:         kfree(new_ld);
+               kfree(new_ld);
                return ERR_PTR(rc);
        }
 
        rc = lcd_register_fb(new_ld);
-
-       if (unlikely(rc))
-               goto error;
+       if (rc) {
+               class_device_unregister(&new_ld->class_dev);
+               return ERR_PTR(rc);
+       }
 
        for (i = 0; i < ARRAY_SIZE(lcd_class_device_attributes); i++) {
                rc = class_device_create_file(&new_ld->class_dev,