diff options
author | Bryan Wu <bryan.wu@canonical.com> | 2012-07-04 12:11:40 +0800 |
---|---|---|
committer | Bryan Wu <bryan.wu@canonical.com> | 2012-07-24 07:52:39 +0800 |
commit | bcbf01624f8e551d2c3c13a2b0c394fb270fd774 (patch) | |
tree | 09694b0aa9e7bbd9636e27d72ce5cea3f8bc551c /drivers/leds/leds-adp5520.c | |
parent | 73759f6ab3620d605a5ce07d5316df1abb7edf18 (diff) | |
download | lwn-bcbf01624f8e551d2c3c13a2b0c394fb270fd774.tar.gz lwn-bcbf01624f8e551d2c3c13a2b0c394fb270fd774.zip |
leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path
Cc: Michael Hennerich <hennerich@blackfin.uclinux.org>
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
Diffstat (limited to 'drivers/leds/leds-adp5520.c')
-rw-r--r-- | drivers/leds/leds-adp5520.c | 8 |
1 files changed, 3 insertions, 5 deletions
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; } |