leds: convert wm831x status driver to devm_kzalloc()
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 10 Jan 2012 23:09:45 +0000 (15:09 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Jan 2012 00:30:49 +0000 (16:30 -0800)
Saves a small amount of code and systematically eliminates leaks.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/leds/leds-wm831x-status.c

index 444a68d8e17e1f9b49da76b4dba18e03fb27b329..74a24cf897c386952f47bdb0a9df319808f2d5a6 100644 (file)
@@ -237,7 +237,8 @@ static int wm831x_status_probe(struct platform_device *pdev)
                goto err;
        }
 
-       drvdata = kzalloc(sizeof(struct wm831x_status), GFP_KERNEL);
+       drvdata = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_status),
+                              GFP_KERNEL);
        if (!drvdata)
                return -ENOMEM;
        dev_set_drvdata(&pdev->dev, drvdata);
@@ -300,7 +301,6 @@ static int wm831x_status_probe(struct platform_device *pdev)
 
 err_led:
        led_classdev_unregister(&drvdata->cdev);
-       kfree(drvdata);
 err:
        return ret;
 }
@@ -311,7 +311,6 @@ static int wm831x_status_remove(struct platform_device *pdev)
 
        device_remove_file(drvdata->cdev.dev, &dev_attr_src);
        led_classdev_unregister(&drvdata->cdev);
-       kfree(drvdata);
 
        return 0;
 }