On Saturday, December 14, 2013 3:40 AM, Levente Kurusa wrote: > > 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 <le...@linux.com> > --- > drivers/video/backlight/lcd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c > index 93cf15e..7de847d 100644 > --- a/drivers/video/backlight/lcd.c > +++ b/drivers/video/backlight/lcd.c > @@ -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); > }
(+cc Andrew Morton) Hi Levente Kurusa, Would you fix the same thing for 'backlight.c' file? ./drivers/video/backlight/backlight.c struct backlight_device *backlight_device_register(const char *name, ..... rc = device_register(&new_bd->dev); if (rc) { kfree(new_bd); return ERR_PTR(rc); } Best regards, Jingoo Han -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/