mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
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> Acked-by: Linus Walleij <linus.walleij@stericsson.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
parent
b3fcf3e576
commit
d4876a3bc0
@ -369,11 +369,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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user