regulator: handle kcalloc() failure
authorDan Carpenter <error27@gmail.com>
Sun, 7 Mar 2010 12:36:45 +0000 (15:36 +0300)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Mon, 22 Mar 2010 19:44:44 +0000 (19:44 +0000)
Return -ENOMEM if kcalloc() fails

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/regulator/lp3971.c

index f5532ed79272c08976723687684f461f49b5b281..55fab4a306454ea9d6eb604cb0acb7b3458a506b 100644 (file)
@@ -439,6 +439,10 @@ static int __devinit setup_regulators(struct lp3971 *lp3971,
        lp3971->num_regulators = pdata->num_regulators;
        lp3971->rdev = kcalloc(pdata->num_regulators,
                                sizeof(struct regulator_dev *), GFP_KERNEL);
+       if (!lp3971->rdev) {
+               err = -ENOMEM;
+               goto err_nomem;
+       }
 
        /* Instantiate the regulators */
        for (i = 0; i < pdata->num_regulators; i++) {
@@ -461,6 +465,7 @@ error:
                regulator_unregister(lp3971->rdev[i]);
        kfree(lp3971->rdev);
        lp3971->rdev = NULL;
+err_nomem:
        return err;
 }