summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2016-06-26 13:40:35 +0200
committerLee Jones <lee.jones@linaro.org>2016-06-29 11:16:22 +0200
commitd313cdde71ec9a5c327a515c37a0dca2cca00de5 (patch)
tree288366d6045f2739e47eddbd6a20c143704f0c20 /drivers
parentmfd: twl-core: Refactoring for add_numbered_child() (diff)
downloadlinux-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.c7
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;