mfd: dm355evm_msp: Return directly after a failed platform_device_alloc() in add_child()
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 26 Jun 2016 11:40:35 +0000 (13:40 +0200)
committerLee Jones <lee.jones@linaro.org>
Wed, 29 Jun 2016 09:16:22 +0000 (10:16 +0100)
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>
drivers/mfd/dm355evm_msp.c

index 14661ec..270e19c 100644 (file)
@@ -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;