]> Pileus Git - ~andy/linux/blobdiff - drivers/mfd/da903x.c
Merge git://git.infradead.org/mtd-2.6
[~andy/linux] / drivers / mfd / da903x.c
index c07aece900fbb93b9ec08b2aa99ee85e144093fe..2fadbaeb1cb138da62a91f57f394599058c70624 100644 (file)
@@ -470,13 +470,19 @@ static int __devinit da903x_add_subdevs(struct da903x_chip *chip,
                subdev = &pdata->subdevs[i];
 
                pdev = platform_device_alloc(subdev->name, subdev->id);
+               if (!pdev) {
+                       ret = -ENOMEM;
+                       goto failed;
+               }
 
                pdev->dev.parent = chip->dev;
                pdev->dev.platform_data = subdev->platform_data;
 
                ret = platform_device_add(pdev);
-               if (ret)
+               if (ret) {
+                       platform_device_put(pdev);
                        goto failed;
+               }
        }
        return 0;