All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] mfd: da903x - fix da903x_add_subdevs error path
@ 2010-08-24  5:44 Axel Lin
  2010-08-24  5:45 ` [PATCH 2/3] mfd: ezx-pcap - fix pcap_add_subdev " Axel Lin
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Axel Lin @ 2010-08-24  5:44 UTC (permalink / raw)
  To: linux-kernel; +Cc: Samuel Ortiz, Mike Rapoport, eric miao

This patch fixes da903x_add_subdevs error path:
1. return -ENOMEM if platform_device_alloc() fail.
2. call platform_device_put() if platform_device_add() fail.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/mfd/da903x.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/da903x.c b/drivers/mfd/da903x.c
index c07aece..2fadbae 100644
--- a/drivers/mfd/da903x.c
+++ b/drivers/mfd/da903x.c
@@ -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;
 
-- 
1.7.2




^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-09-10 15:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-24  5:44 [PATCH 1/3] mfd: da903x - fix da903x_add_subdevs error path Axel Lin
2010-08-24  5:45 ` [PATCH 2/3] mfd: ezx-pcap - fix pcap_add_subdev " Axel Lin
2010-08-24  5:47 ` [PATCH 3/3] mfd: tps6586x - fix tps6586x_add_subdevs " Axel Lin
2010-08-24  6:13   ` Mike Rapoport
2010-08-24  5:47 ` [PATCH 1/3] mfd: da903x - fix da903x_add_subdevs " Eric Miao
2010-08-24  6:13 ` Mike Rapoport
2010-09-10 15:53 ` Samuel Ortiz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.