aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/backlight/lcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/backlight/lcd.c')
-rw-r--r--drivers/video/backlight/lcd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index f6e041627edb..f95f0e33101d 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -206,14 +206,15 @@ struct lcd_device *lcd_device_register(const char *name, void *devdata,
206 206
207 rc = class_device_register(&new_ld->class_dev); 207 rc = class_device_register(&new_ld->class_dev);
208 if (unlikely(rc)) { 208 if (unlikely(rc)) {
209error: kfree(new_ld); 209 kfree(new_ld);
210 return ERR_PTR(rc); 210 return ERR_PTR(rc);
211 } 211 }
212 212
213 rc = lcd_register_fb(new_ld); 213 rc = lcd_register_fb(new_ld);
214 214 if (rc) {
215 if (unlikely(rc)) 215 class_device_unregister(&new_ld->class_dev);
216 goto error; 216 return ERR_PTR(rc);
217 }
217 218
218 for (i = 0; i < ARRAY_SIZE(lcd_class_device_attributes); i++) { 219 for (i = 0; i < ARRAY_SIZE(lcd_class_device_attributes); i++) {
219 rc = class_device_create_file(&new_ld->class_dev, 220 rc = class_device_create_file(&new_ld->class_dev,