ab8500_charger: Harden platform data check
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 13 Apr 2012 08:15:49 +0000 (10:15 +0200)
committerAnton Vorontsov <anton.vorontsov@linaro.org>
Sat, 5 May 2012 10:58:04 +0000 (03:58 -0700)
If no platform data at all is supplied the driver crashes,
extend the checks to be more careful so we can compile in the
driver and boot also without platform data present.

Acked-by: Arun Murthy <arun.murthy@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
drivers/power/ab8500_charger.c

index e2b4accbec8815782ad1bf659b90e40196d31b63..79dc584a53ed389810bc7330acd59785233a4ec8 100644 (file)
@@ -2551,13 +2551,12 @@ static int __devinit ab8500_charger_probe(struct platform_device *pdev)
 
        /* get charger specific platform data */
        plat_data = pdev->dev.platform_data;
-       di->pdata = plat_data->charger;
-
-       if (!di->pdata) {
+       if (!plat_data || !plat_data->charger) {
                dev_err(di->dev, "no charger platform data supplied\n");
                ret = -EINVAL;
                goto free_device_info;
        }
+       di->pdata = plat_data->charger;
 
        /* get battery specific platform data */
        di->bat = plat_data->battery;