From d003c4805cb3f6972e23e28587f37f7a8c6fc140 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Tue, 24 Aug 2010 13:45:49 +0800 Subject: [PATCH] --- yaml --- r: 220583 b: refs/heads/master c: 09ff21e0f670a71ea43765cedaab9246fd81540e h: refs/heads/master i: 220581: 558e98c971d0f0e11606cf887a221e32c693e40c 220579: 428b7ce1f30438f16cf3fff0fb7b58a52f93c4b5 220575: 612d6883e3008ca39f3fe0e6f5963b36b7709345 v: v3 --- [refs] | 2 +- trunk/drivers/mfd/ezx-pcap.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 389c38aa54bb..72f4bf7b5064 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b59cedeffaef54dd091baf01fd5e276ac50a3176 +refs/heads/master: 09ff21e0f670a71ea43765cedaab9246fd81540e diff --git a/trunk/drivers/mfd/ezx-pcap.c b/trunk/drivers/mfd/ezx-pcap.c index 134c69aa4790..d283d77937b9 100644 --- a/trunk/drivers/mfd/ezx-pcap.c +++ b/trunk/drivers/mfd/ezx-pcap.c @@ -384,12 +384,20 @@ static int __devinit pcap_add_subdev(struct pcap_chip *pcap, struct pcap_subdev *subdev) { struct platform_device *pdev; + int ret; pdev = platform_device_alloc(subdev->name, subdev->id); + if (!pdev) + return -ENOMEM; + pdev->dev.parent = &pcap->spi->dev; pdev->dev.platform_data = subdev->platform_data; - return platform_device_add(pdev); + ret = platform_device_add(pdev); + if (ret) + platform_device_put(pdev); + + return ret; } static int __devexit ezx_pcap_remove(struct spi_device *spi)