From 2fd5a15489dd2e58009ffd4ecbadb36a40f67d2b Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Wed, 7 Feb 2007 22:25:50 +0000 Subject: backlight: Fix error handling Fix error handling when registering new device Signed-off-by: Dmitry Torokhov Signed-off-by: Richard Purdie --- drivers/video/backlight/backlight.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'drivers/video/backlight/backlight.c') diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 9601bfe309a..71056f8b621 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, 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, -- cgit v1.2.3