diff options
author | Bryan Wu <bryan.wu@canonical.com> | 2012-07-04 00:11:40 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@canonical.com> | 2012-07-23 19:52:39 -0400 |
commit | bcbf01624f8e551d2c3c13a2b0c394fb270fd774 (patch) | |
tree | 09694b0aa9e7bbd9636e27d72ce5cea3f8bc551c /drivers/leds/leds-adp5520.c | |
parent | 73759f6ab3620d605a5ce07d5316df1abb7edf18 (diff) |
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) | |||
119 | return -EFAULT; | 119 | return -EFAULT; |
120 | } | 120 | } |
121 | 121 | ||
122 | led = kzalloc(sizeof(*led) * pdata->num_leds, GFP_KERNEL); | 122 | led = devm_kzalloc(&pdev->dev, sizeof(*led) * pdata->num_leds, |
123 | GFP_KERNEL); | ||
123 | if (led == NULL) { | 124 | if (led == NULL) { |
124 | dev_err(&pdev->dev, "failed to alloc memory\n"); | 125 | dev_err(&pdev->dev, "failed to alloc memory\n"); |
125 | return -ENOMEM; | 126 | return -ENOMEM; |
@@ -129,7 +130,7 @@ static int __devinit adp5520_led_probe(struct platform_device *pdev) | |||
129 | 130 | ||
130 | if (ret) { | 131 | if (ret) { |
131 | dev_err(&pdev->dev, "failed to write\n"); | 132 | dev_err(&pdev->dev, "failed to write\n"); |
132 | goto err_free; | 133 | return ret; |
133 | } | 134 | } |
134 | 135 | ||
135 | for (i = 0; i < pdata->num_leds; ++i) { | 136 | for (i = 0; i < pdata->num_leds; ++i) { |
@@ -179,8 +180,6 @@ err: | |||
179 | } | 180 | } |
180 | } | 181 | } |
181 | 182 | ||
182 | err_free: | ||
183 | kfree(led); | ||
184 | return ret; | 183 | return ret; |
185 | } | 184 | } |
186 | 185 | ||
@@ -200,7 +199,6 @@ static int __devexit adp5520_led_remove(struct platform_device *pdev) | |||
200 | cancel_work_sync(&led[i].work); | 199 | cancel_work_sync(&led[i].work); |
201 | } | 200 | } |
202 | 201 | ||
203 | kfree(led); | ||
204 | return 0; | 202 | return 0; |
205 | } | 203 | } |
206 | 204 | ||