diff options
author | Devendra Naga <devendra.aaru@gmail.com> | 2012-07-02 06:15:43 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@canonical.com> | 2012-07-23 19:52:35 -0400 |
commit | b523cfe61b097a45f4e919e8c3b6da239962b3e9 (patch) | |
tree | 3224236922fc03822286579ce7fcf665d44e7d08 /drivers/leds | |
parent | 5391dd0a9d084633e20e6583cfed233581c452f9 (diff) |
leds-88pm860x: use devm_kzalloc function
Using devm_kzalloc will remove all the error checks and the frees are automatically done at the driver unload side.
Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
Diffstat (limited to 'drivers/leds')
-rw-r--r-- | drivers/leds/leds-88pm860x.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/leds/leds-88pm860x.c b/drivers/leds/leds-88pm860x.c index 5b61aaf7ac0f..61897cfeeda6 100644 --- a/drivers/leds/leds-88pm860x.c +++ b/drivers/leds/leds-88pm860x.c | |||
@@ -209,7 +209,7 @@ static int pm860x_led_probe(struct platform_device *pdev) | |||
209 | return -EINVAL; | 209 | return -EINVAL; |
210 | } | 210 | } |
211 | 211 | ||
212 | data = kzalloc(sizeof(struct pm860x_led), GFP_KERNEL); | 212 | data = devm_kzalloc(&pdev->dev, sizeof(struct pm860x_led), GFP_KERNEL); |
213 | if (data == NULL) | 213 | if (data == NULL) |
214 | return -ENOMEM; | 214 | return -ENOMEM; |
215 | strncpy(data->name, res->name, MFD_NAME_SIZE - 1); | 215 | strncpy(data->name, res->name, MFD_NAME_SIZE - 1); |
@@ -220,7 +220,6 @@ static int pm860x_led_probe(struct platform_device *pdev) | |||
220 | data->port = pdata->flags; | 220 | data->port = pdata->flags; |
221 | if (data->port < 0) { | 221 | if (data->port < 0) { |
222 | dev_err(&pdev->dev, "check device failed\n"); | 222 | dev_err(&pdev->dev, "check device failed\n"); |
223 | kfree(data); | ||
224 | return -EINVAL; | 223 | return -EINVAL; |
225 | } | 224 | } |
226 | 225 | ||
@@ -233,13 +232,10 @@ static int pm860x_led_probe(struct platform_device *pdev) | |||
233 | ret = led_classdev_register(chip->dev, &data->cdev); | 232 | ret = led_classdev_register(chip->dev, &data->cdev); |
234 | if (ret < 0) { | 233 | if (ret < 0) { |
235 | dev_err(&pdev->dev, "Failed to register LED: %d\n", ret); | 234 | dev_err(&pdev->dev, "Failed to register LED: %d\n", ret); |
236 | goto out; | 235 | return ret; |
237 | } | 236 | } |
238 | pm860x_led_set(&data->cdev, 0); | 237 | pm860x_led_set(&data->cdev, 0); |
239 | return 0; | 238 | return 0; |
240 | out: | ||
241 | kfree(data); | ||
242 | return ret; | ||
243 | } | 239 | } |
244 | 240 | ||
245 | static int pm860x_led_remove(struct platform_device *pdev) | 241 | static int pm860x_led_remove(struct platform_device *pdev) |
@@ -247,7 +243,6 @@ static int pm860x_led_remove(struct platform_device *pdev) | |||
247 | struct pm860x_led *data = platform_get_drvdata(pdev); | 243 | struct pm860x_led *data = platform_get_drvdata(pdev); |
248 | 244 | ||
249 | led_classdev_unregister(&data->cdev); | 245 | led_classdev_unregister(&data->cdev); |
250 | kfree(data); | ||
251 | 246 | ||
252 | return 0; | 247 | return 0; |
253 | } | 248 | } |