Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756737Ab0HNOfZ (ORCPT ); Sat, 14 Aug 2010 10:35:25 -0400 Received: from eu1sys200aog104.obsmtp.com ([207.126.144.117]:38352 "EHLO eu1sys200aog104.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756662Ab0HNOfY (ORCPT ); Sat, 14 Aug 2010 10:35:24 -0400 From: Sundar R IYER To: Axel Lin , linux-kernel Cc: Liam Girdwood , Mark Brown , Linus WALLEIJ Date: Sat, 14 Aug 2010 16:34:49 +0200 Subject: RE: [PATCH] regulator: ab8500 - fix the logic to remove already registered regulators in error path Thread-Topic: [PATCH] regulator: ab8500 - fix the logic to remove already registered regulators in error path Thread-Index: Acs7trs05ECGMDW2QhuTNDUhYcT/6AABDp0Q Message-ID: <33A307AF30D7BF4F811B1568FE7A9B18188E2CA0@EXDCVYMBSTM006.EQ1STM.local> References: <1281793444.2974.5.camel@phoenix> In-Reply-To: <1281793444.2974.5.camel@phoenix> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id o7EEZTGg024438 Content-Length: 1659 Lines: 55 Thanx! BTW, could you also include the AB3100 as well into this patch? I derived it from the AB3100 implementation. Linus, any comments? Regards, Sundar >-----Original Message----- >From: Axel Lin [mailto:axel.lin@gmail.com] >Sent: Saturday, August 14, 2010 7:14 PM >To: linux-kernel >Cc: Liam Girdwood; Mark Brown; Sundar R IYER >Subject: [PATCH] regulator: ab8500 - fix the logic to remove already registered >regulators in error path > >In current implementation, ab8500_regulator_info[0].regulator is not >unregistered if the error happen at i > 0. > >This patch fixes the resource leak and also improves the readability. > >Signed-off-by: Axel Lin >--- >I think this change is better ( in readability ) than simply change "while (i > 0)" to >"while (i >= 0)". > > drivers/regulator/ab8500.c | 4 +--- > 1 files changed, 1 insertions(+), 3 deletions(-) > >diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c >index dc3f1a4..775688e 100644 >--- a/drivers/regulator/ab8500.c >+++ b/drivers/regulator/ab8500.c >@@ -368,11 +368,9 @@ static __devinit int ab8500_regulator_probe(struct >platform_device *pdev) > dev_err(&pdev->dev, "failed to register regulator %s\n", > info->desc.name); > /* when we fail, un-register all earlier regulators */ >- i--; >- while (i > 0) { >+ while (--i >= 0) { > info = &ab8500_regulator_info[i]; > regulator_unregister(info->regulator); >- i--; > } > return err; > } >-- >1.7.0.4 > > ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?