From a5f78ae6ead9859c495b2ebfaebadba746c0d672 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Tue, 30 Sep 2008 21:42:57 +0300 Subject: [PATCH] i2c: added a few missing gotos to add_children() Previously we were failing platform_device_add_data() and returning from add_children but trying to keep going when platform_device_add() fails. Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren --- drivers/i2c/chips/twl4030-core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c index 4ea6444de76..80cf2318e7d 100644 --- a/drivers/i2c/chips/twl4030-core.c +++ b/drivers/i2c/chips/twl4030-core.c @@ -675,6 +675,7 @@ static int add_children(struct twl4030_platform_data *pdata) if (!pdev) { pr_debug("%s: can't alloc gpio dev\n", DRIVER_NAME); status = -ENOMEM; + goto err; } /* more driver model init */ @@ -735,6 +736,7 @@ static int add_children(struct twl4030_platform_data *pdata) dev_dbg(&twl->client->dev, "can't create keypad dev, %d\n", status); + goto err; } } else { pr_debug("%s: can't alloc keypad dev\n", DRIVER_NAME); @@ -764,6 +766,7 @@ static int add_children(struct twl4030_platform_data *pdata) dev_dbg(&twl->client->dev, "can't create madc dev, %d\n", status); + goto err; } } else { pr_debug("%s: can't alloc madc dev\n", DRIVER_NAME); @@ -799,6 +802,7 @@ static int add_children(struct twl4030_platform_data *pdata) dev_dbg(&twl->client->dev, "can't create rtc dev, %d\n", status); + goto err; } } else { pr_debug("%s: can't alloc rtc dev\n", DRIVER_NAME); @@ -832,7 +836,6 @@ static int add_children(struct twl4030_platform_data *pdata) } else { pr_debug("%s: can't alloc usb dev\n", DRIVER_NAME); status = -ENOMEM; - goto err; } } -- 2.41.3