Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67e46f34 authored by Dan Carpenter's avatar Dan Carpenter Committed by Liam Girdwood
Browse files

regulator: handle kcalloc() failure



Return -ENOMEM if kcalloc() fails

Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarWolfram Sang <w.sang@pengutronix.de>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent 3fff6c04
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -439,6 +439,10 @@ static int __devinit setup_regulators(struct lp3971 *lp3971,
	lp3971->num_regulators = pdata->num_regulators;
	lp3971->num_regulators = pdata->num_regulators;
	lp3971->rdev = kcalloc(pdata->num_regulators,
	lp3971->rdev = kcalloc(pdata->num_regulators,
				sizeof(struct regulator_dev *), GFP_KERNEL);
				sizeof(struct regulator_dev *), GFP_KERNEL);
	if (!lp3971->rdev) {
		err = -ENOMEM;
		goto err_nomem;
	}


	/* Instantiate the regulators */
	/* Instantiate the regulators */
	for (i = 0; i < pdata->num_regulators; i++) {
	for (i = 0; i < pdata->num_regulators; i++) {
@@ -461,6 +465,7 @@ error:
		regulator_unregister(lp3971->rdev[i]);
		regulator_unregister(lp3971->rdev[i]);
	kfree(lp3971->rdev);
	kfree(lp3971->rdev);
	lp3971->rdev = NULL;
	lp3971->rdev = NULL;
err_nomem:
	return err;
	return err;
}
}