Re: [PATCH 3/3] backlight: lm3533_bl: use devm_ functions

From: Johan Hovold
Date: Mon May 21 2012 - 05:58:37 EST


On Mon, May 21, 2012 at 06:20:01PM +0900, Jingoo Han wrote:
> The devm_ functions allocate memory that is released when a driver
> detaches. This patch uses devm_kzalloc of these functions.
>
> Cc: Johan Hovold <jhovold@xxxxxxxxx>
> Cc: Richard Purdie <rpurdie@xxxxxxxxx>
> Signed-off-by: Jingoo Han <jg1.han@xxxxxxxxxxx>
> ---
> drivers/video/backlight/lm3533_bl.c | 8 +++-----
> 1 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c
> index 0148227..9f96a6b 100644
> --- a/drivers/video/backlight/lm3533_bl.c
> +++ b/drivers/video/backlight/lm3533_bl.c
> @@ -295,7 +295,7 @@ static int __devinit lm3533_bl_probe(struct platform_device *pdev)
> return -EINVAL;
> }
>
> - bl = kzalloc(sizeof(*bl), GFP_KERNEL);
> + bl = devm_kzalloc(&pdev->dev, sizeof(*bl), GFP_KERNEL);
> if (!bl) {
> dev_err(&pdev->dev,
> "failed to allocate memory for backlight\n");
> @@ -318,7 +318,7 @@ static int __devinit lm3533_bl_probe(struct platform_device *pdev)
> if (IS_ERR(bd)) {
> dev_err(&pdev->dev, "failed to register backlight device\n");
> ret = PTR_ERR(bd);
> - goto err_free;
> + goto err_return;

Why not simply return PTR_ERR(bd) here?

> }
>
> bl->bd = bd;
> @@ -348,8 +348,7 @@ err_sysfs_remove:
> sysfs_remove_group(&bd->dev.kobj, &lm3533_bl_attribute_group);
> err_unregister:
> backlight_device_unregister(bd);
> -err_free:
> - kfree(bl);
> +err_return:

No need for this label then.

>
> return ret;
> }
> @@ -367,7 +366,6 @@ static int __devexit lm3533_bl_remove(struct platform_device *pdev)
> lm3533_ctrlbank_disable(&bl->cb);
> sysfs_remove_group(&bd->dev.kobj, &lm3533_bl_attribute_group);
> backlight_device_unregister(bd);
> - kfree(bl);
>
> return 0;
> }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/