diff options
Diffstat (limited to 'drivers/video/backlight/backlight.c')
-rw-r--r-- | drivers/video/backlight/backlight.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 9601bfe309ac..71056f8b621a 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c | |||
@@ -240,13 +240,16 @@ struct backlight_device *backlight_device_register(const char *name, | |||
240 | 240 | ||
241 | rc = class_device_register(&new_bd->class_dev); | 241 | rc = class_device_register(&new_bd->class_dev); |
242 | if (unlikely(rc)) { | 242 | if (unlikely(rc)) { |
243 | error: kfree(new_bd); | 243 | kfree(new_bd); |
244 | return ERR_PTR(rc); | 244 | return ERR_PTR(rc); |
245 | } | 245 | } |
246 | 246 | ||
247 | rc = backlight_register_fb(new_bd); | 247 | rc = backlight_register_fb(new_bd); |
248 | if (unlikely(rc)) | 248 | if (rc) { |
249 | goto error; | 249 | class_device_unregister(&new_bd->class_dev); |
250 | return ERR_PTR(rc); | ||
251 | } | ||
252 | |||
250 | 253 | ||
251 | for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) { | 254 | for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) { |
252 | rc = class_device_create_file(&new_bd->class_dev, | 255 | rc = class_device_create_file(&new_bd->class_dev, |