diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2016-06-26 06:25:36 -0400 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2016-06-29 05:16:11 -0400 |
commit | a67911d38f2deda8a48cb0e8a4b3f59afeda7b81 (patch) | |
tree | 2f5cba062656c47a5b17e12cd3eec77c53bd4d35 | |
parent | d347792c315171fd89dda9d6cbebea756c29b3ea (diff) |
mfd: twl-core: Return directly after a failed platform_device_alloc() in add_numbered_child()
The platform_device_put() function was called in one case by the
add_numbered_child() function during error handling even if the passed
variable "pdev" contained a null pointer.
Return directly in this case.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r-- | drivers/mfd/twl-core.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c index 831696ee2472..9458c6df39ed 100644 --- a/drivers/mfd/twl-core.c +++ b/drivers/mfd/twl-core.c | |||
@@ -622,11 +622,8 @@ add_numbered_child(unsigned mod_no, const char *name, int num, | |||
622 | twl = &twl_priv->twl_modules[sid]; | 622 | twl = &twl_priv->twl_modules[sid]; |
623 | 623 | ||
624 | pdev = platform_device_alloc(name, num); | 624 | pdev = platform_device_alloc(name, num); |
625 | if (!pdev) { | 625 | if (!pdev) |
626 | dev_dbg(&twl->client->dev, "can't alloc dev\n"); | 626 | return ERR_PTR(-ENOMEM); |
627 | status = -ENOMEM; | ||
628 | goto err; | ||
629 | } | ||
630 | 627 | ||
631 | pdev->dev.parent = &twl->client->dev; | 628 | pdev->dev.parent = &twl->client->dev; |
632 | 629 | ||