Re: [PATCH 3.8-stable] regulator: fixed regulator_bulk_enableunwinding code

From: Luis Henriques
Date: Tue Apr 23 2013 - 06:51:43 EST


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 <a.hajda@xxxxxxxxxxx>"
>
> commit fbe31057fafebdc2811a7101b8b4a0460f5417d1 upstream.
>
> Unwinding code disables all successfully enabled regulators.
> Error is logged for every failed regulator.
>
> Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx>
> ---
> 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 majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/