regulator: ab3100 - fix the logic to remove already registered regulators in error path
PATCH 1/1 regulator: ab3100 - fix the logic to remove already registered regulators in error path
In current implementation, ab3100_regulators[0].rdev is not unregistered if the error happen at i > 0.
This patch fixes the resource leak and also improves the readability.
---
I think this change is better ( in readability ) than simply change "while (i > 0)" to "while (i >= 0)".
drivers/regulator/ab3100.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-)
drivers/regulator/ab3100.c +1 -4
@@ -634,12 +634,9 @@ static int __devinit ab3100_regulators_probe(struct platform_device *pdev)"%s: failed to register regulator %s err %d\n" , __func__, ab3100_regulator_desc[i].name, err); - i--;/* remove the already registered regulators */ -while (i >0 ) { +while (--i >=0 )regulator_unregister (ab3100_regulators[i].rdev); - i--; - }return err; }
Signature · 1 line
1.7.0.4
Quoted 6 lines · Axel Lin
In current implementation, ab3100_regulators[0].rdev 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 <[email protected]>
2010/8/14 Axel Lin <[email protected]>:
Quoted 6 lines
In current implementation, ab3100_regulators[0].rdev 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 <[email protected]>
Great, thanks!
Yours,
Linus Walleij
Liam Girdwood
AppliedQuoted 20 lines · Axel Lin
In current implementation, ab3100_regulators[0].rdev 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 <[email protected]>---
I think this change is better ( in readability ) than simply change "while (i > 0)" to "while (i >= 0)".drivers/regulator/ab3100.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-)drivers/regulator/ab3100.c +0
-0@@ -634,12 +634,9 @@ static int __devinit ab3100_regulators_probe(struct platform_device *pdev)"%s: failed to register regulator %s err %d\n" , __func__, ab3100_regulator_desc[i].name, err);
drivers/regulator/ab3100.c static int __devinit ab3100_regulators_probe(struct platform_device *pdev) · line 642
Quoted 10 lines
drivers/regulator/ab3100.c +1
-4- i--;/* remove the already registered regulators */ -while (i >0 ) { +while (--i >=0 )regulator_unregister (ab3100_regulators[i].rdev); - i--; - }return err; }
Applied.
Thanks
Liam
Signature · 3 lines
Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk