regulator: Simplify regulator_bulk_get and regulator_bulk_enable error paths

Start unwind from the point the error happens instead of iterating over all
consumers, then unwind code can be simpler.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Axel Lin 2012-02-20 10:32:16 +08:00 committed by Mark Brown
parent fde297bb4d
commit b29c7690a7
1 changed files with 4 additions and 7 deletions

View File

@ -2397,7 +2397,7 @@ int regulator_bulk_get(struct device *dev, int num_consumers,
return 0;
err:
for (i = 0; i < num_consumers && consumers[i].consumer; i++)
while (--i >= 0)
regulator_put(consumers[i].consumer);
return ret;
@ -2447,12 +2447,9 @@ int regulator_bulk_enable(int num_consumers,
return 0;
err:
for (i = 0; i < num_consumers; i++)
if (consumers[i].ret == 0)
regulator_disable(consumers[i].consumer);
else
pr_err("Failed to enable %s: %d\n",
consumers[i].supply, consumers[i].ret);
pr_err("Failed to enable %s: %d\n", consumers[i].supply, ret);
while (--i >= 0)
regulator_disable(consumers[i].consumer);
return ret;
}