diff options
author | Dmitry Torokhov <dtor@mail.ru> | 2007-02-07 22:25:50 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@rpsys.net> | 2007-02-20 08:35:09 +0000 |
commit | 2fd5a15489dd2e58009ffd4ecbadb36a40f67d2b (patch) | |
tree | 4f7406a6efbe9219f5bf78e3f112e67573efa0aa /drivers/video/backlight/lcd.c | |
parent | 7a208463b20e893e8e2074b2d41b8dc09568ddee (diff) |
backlight: Fix error handling
Fix error handling when registering new device
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Diffstat (limited to 'drivers/video/backlight/lcd.c')
-rw-r--r-- | drivers/video/backlight/lcd.c | 9 |
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, 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, |