From: Andrzej Hajda Date: Fri, 1 Mar 2013 11:24:05 +0000 (+0100) Subject: regulator: fixed regulator_bulk_enable unwinding code X-Git-Tag: v3.9-rc2~18^2~4^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fbe31057fafebdc2811a7101b8b4a0460f5417d1;p=platform%2Fkernel%2Flinux-exynos.git regulator: fixed regulator_bulk_enable unwinding code Unwinding code disables all successfully enabled regulators. Error is logged for every failed regulator. Signed-off-by: Andrzej Hajda Signed-off-by: Kyungmin Park Signed-off-by: Mark Brown --- diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index da9782b..4a7790c 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -3057,9 +3057,13 @@ int regulator_bulk_enable(int num_consumers, return 0; err: - pr_err("Failed to enable %s: %d\n", consumers[i].supply, ret); - while (--i >= 0) - regulator_disable(consumers[i].consumer); + for (i = 0; i < num_consumers; i++) { + if (consumers[i].ret < 0) + pr_err("Failed to enable %s: %d\n", consumers[i].supply, + consumers[i].ret); + else + regulator_disable(consumers[i].consumer); + } return ret; }