2013-04-23 02:56:30

by Jonghwan Choi

[permalink] [raw]
Subject: [PATCH 3.8-stable] regulator: fixed regulator_bulk_enable unwinding code

3.8-stable review patch. If anyone has any objections, please let me know.

------------------

From: "Andrzej Hajda <[email protected]>"

commit fbe31057fafebdc2811a7101b8b4a0460f5417d1 upstream.

Unwinding code disables all successfully enabled regulators.
Error is logged for every failed regulator.

Signed-off-by: Andrzej Hajda <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Jonghwan Choi <[email protected]>
---
drivers/regulator/core.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 5a0f54a..e56185b 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -3032,9 +3032,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;
}
--
1.7.9.5


2013-04-23 10:51:41

by Luis Henriques

[permalink] [raw]
Subject: Re: [PATCH 3.8-stable] regulator: fixed regulator_bulk_enable unwinding code

On Tue, Apr 23, 2013 at 11:56:25AM +0900, Jonghwan Choi wrote:
> 3.8-stable review patch. If anyone has any objections, please let me know.

Thanks, I believe this is also applicable to 3.4.y and 3.5.y.

Cheers,
--
Luis

>
> ------------------
>
> From: "Andrzej Hajda <[email protected]>"
>
> commit fbe31057fafebdc2811a7101b8b4a0460f5417d1 upstream.
>
> Unwinding code disables all successfully enabled regulators.
> Error is logged for every failed regulator.
>
> Signed-off-by: Andrzej Hajda <[email protected]>
> Signed-off-by: Kyungmin Park <[email protected]>
> Signed-off-by: Mark Brown <[email protected]>
> Signed-off-by: Jonghwan Choi <[email protected]>
> ---
> drivers/regulator/core.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
> index 5a0f54a..e56185b 100644
> --- a/drivers/regulator/core.c
> +++ b/drivers/regulator/core.c
> @@ -3032,9 +3032,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;
> }
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html