drivers/video/backlight/lcd.c: call put_device if device_register fails
authorLevente Kurusa <levex@linux.com>
Thu, 30 Jan 2014 23:45:45 +0000 (15:45 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 31 Jan 2014 00:56:54 +0000 (16:56 -0800)
Currently we kfree the container of the device which failed to register.
This is wrong as the last reference is not given up with a put_device
call.  Also, now that we have put_device() callen, we no longer need the
kfree as the new_ld->dev.release function will take care of kfreeing the
associated memory.

Signed-off-by: Levente Kurusa <levex@linux.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/backlight/lcd.c

index 93cf15efc717d4ea015a05c06da529831af1192f..7de847df224fd2c24ac62b4c97d46c174f5e026f 100644 (file)
@@ -228,7 +228,7 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent,
 
        rc = device_register(&new_ld->dev);
        if (rc) {
-               kfree(new_ld);
+               put_device(&new_ld->dev);
                return ERR_PTR(rc);
        }