Messages in this thread | | | From | Sundar R IYER <> | 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 |
| |
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 <axel.lin@gmail.com> >--- >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 > >
| |