From: Bryan Wu Date: Wed, 4 Jul 2012 04:11:40 +0000 (+0800) Subject: leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=bcbf01624f8e551d2c3c13a2b0c394fb270fd774;p=deliverable%2Flinux.git leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path Cc: Michael Hennerich Signed-off-by: Bryan Wu --- diff --git a/drivers/leds/leds-adp5520.c b/drivers/leds/leds-adp5520.c index b1400db3f839..aa56a867693a 100644 --- a/drivers/leds/leds-adp5520.c +++ b/drivers/leds/leds-adp5520.c @@ -119,7 +119,8 @@ static int __devinit adp5520_led_probe(struct platform_device *pdev) return -EFAULT; } - led = kzalloc(sizeof(*led) * pdata->num_leds, GFP_KERNEL); + led = devm_kzalloc(&pdev->dev, sizeof(*led) * pdata->num_leds, + GFP_KERNEL); if (led == NULL) { dev_err(&pdev->dev, "failed to alloc memory\n"); return -ENOMEM; @@ -129,7 +130,7 @@ static int __devinit adp5520_led_probe(struct platform_device *pdev) if (ret) { dev_err(&pdev->dev, "failed to write\n"); - goto err_free; + return ret; } for (i = 0; i < pdata->num_leds; ++i) { @@ -179,8 +180,6 @@ err: } } -err_free: - kfree(led); return ret; } @@ -200,7 +199,6 @@ static int __devexit adp5520_led_remove(struct platform_device *pdev) cancel_work_sync(&led[i].work); } - kfree(led); return 0; }