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/

Reply via email to