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. 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
af54decd6a
commit
b3fcf3e576
|
@ -634,12 +634,9 @@ static int __devinit ab3100_regulators_probe(struct platform_device *pdev)
|
||||||
"%s: failed to register regulator %s err %d\n",
|
"%s: failed to register regulator %s err %d\n",
|
||||||
__func__, ab3100_regulator_desc[i].name,
|
__func__, ab3100_regulator_desc[i].name,
|
||||||
err);
|
err);
|
||||||
i--;
|
|
||||||
/* remove the already registered regulators */
|
/* remove the already registered regulators */
|
||||||
while (i > 0) {
|
while (--i >= 0)
|
||||||
regulator_unregister(ab3100_regulators[i].rdev);
|
regulator_unregister(ab3100_regulators[i].rdev);
|
||||||
i--;
|
|
||||||
}
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue