Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756139Ab3DWKvl (ORCPT ); Tue, 23 Apr 2013 06:51:41 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:49214 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755164Ab3DWKvj (ORCPT ); Tue, 23 Apr 2013 06:51:39 -0400 Date: Tue, 23 Apr 2013 11:51:35 +0100 From: Luis Henriques To: Jonghwan Choi Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, "'Andrzej Hajda'" , "'Liam Girdwood'" , "'Mark Brown'" Subject: Re: [PATCH 3.8-stable] regulator: fixed regulator_bulk_enable unwinding code Message-ID: <20130423105135.GD3471@hercules> References: <006f01ce3fce$25072080$6f156180$%choi@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <006f01ce3fce$25072080$6f156180$%choi@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1931 Lines: 61 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 " > > commit fbe31057fafebdc2811a7101b8b4a0460f5417d1 upstream. > > 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 > Signed-off-by: Jonghwan Choi > --- > 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@vger.kernel.org > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/