regulator: Simplify regulator_bulk_get and regulator_bulk_enable error paths
PATCH 1/1 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 <[email protected]>
--- drivers/regulator/core.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)
drivers/regulator/core.c +4 -7
@@ -2451,7 +2451,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;
@@ -2547,12 +2547,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; }
Signature · 1 line
1.7.5.4