diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2016-06-26 13:40:35 +0200 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2016-06-29 11:16:22 +0200 |
commit | d313cdde71ec9a5c327a515c37a0dca2cca00de5 (patch) | |
tree | 288366d6045f2739e47eddbd6a20c143704f0c20 /drivers | |
parent | mfd: twl-core: Refactoring for add_numbered_child() (diff) | |
download | linux-d313cdde71ec9a5c327a515c37a0dca2cca00de5.tar.xz linux-d313cdde71ec9a5c327a515c37a0dca2cca00de5.zip |
mfd: dm355evm_msp: Return directly after a failed platform_device_alloc() in add_child()
The platform_device_put() function was called in one case by the
add_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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mfd/dm355evm_msp.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/mfd/dm355evm_msp.c b/drivers/mfd/dm355evm_msp.c index 14661ec5ef7f..270e19c0bba1 100644 --- a/drivers/mfd/dm355evm_msp.c +++ b/drivers/mfd/dm355evm_msp.c @@ -199,11 +199,8 @@ static struct device *add_child(struct i2c_client *client, const char *name, int status; pdev = platform_device_alloc(name, -1); - if (!pdev) { - dev_dbg(&client->dev, "can't alloc dev\n"); - status = -ENOMEM; - goto err; - } + if (!pdev) + return ERR_PTR(-ENOMEM); device_init_wakeup(&pdev->dev, can_wakeup); pdev->dev.parent = &client->dev; |