Messages in this thread | | | Date | Tue, 22 May 2012 12:34:45 +0100 | From | Lee Jones <> | Subject | Re: [PATCH 1/3] power/ab8500_charger: harden platform data check |
| |
Hi Anton,
I see that this didn't make it into any of the v3.4-rc:s, hence v3.4 was released broken. Do you know when they're likely to make it into Mainline?
Kind regards, Lee
> - - - - > commit 2aac3de19b72608f474c90034185c2be4908728f > Author: Lee Jones<lee.jones@linaro.org> > Date: Sat May 5 04:38:19 2012 -0700 > > ab8500: Clean up probe routines > > These patches clean up some ugliness and brings the variable > initialisation formatting more into line with other drivers. > > Signed-off-by: Lee Jones<lee.jones@linaro.org> > Signed-off-by: Anton Vorontsov<anton.vorontsov@linaro.org> > > diff --git a/drivers/power/ab8500_btemp.c b/drivers/power/ab8500_btemp.c > index e266f03..bba3cca 100644 > --- a/drivers/power/ab8500_btemp.c > +++ b/drivers/power/ab8500_btemp.c > @@ -964,10 +964,15 @@ static int __devinit ab8500_btemp_probe(struct platform_device *pdev) > { > int irq, i, ret = 0; > u8 val; > - struct abx500_bm_plat_data *plat_data; > + struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data; > + struct ab8500_btemp *di; > + > + if (!plat_data) { > + dev_err(&pdev->dev, "No platform data\n"); > + return -EINVAL; > + } > > - struct ab8500_btemp *di = > - kzalloc(sizeof(struct ab8500_btemp), GFP_KERNEL); > + di = kzalloc(sizeof(*di), GFP_KERNEL); > if (!di) > return -ENOMEM; > > @@ -977,13 +982,12 @@ static int __devinit ab8500_btemp_probe(struct platform_device *pdev) > di->gpadc = ab8500_gpadc_get("ab8500-gpadc.0"); > > /* get btemp specific platform data */ > - plat_data = pdev->dev.platform_data; > - if (!plat_data || !plat_data->btemp) { > + di->pdata = plat_data->btemp; > + if (!di->pdata) { > dev_err(di->dev, "no btemp platform data supplied\n"); > ret = -EINVAL; > goto free_device_info; > } > - di->pdata = plat_data->btemp; > > /* get battery specific platform data */ > di->bat = plat_data->battery; > diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c > index 79dc584..d2303d0 100644 > --- a/drivers/power/ab8500_charger.c > +++ b/drivers/power/ab8500_charger.c > @@ -2534,10 +2534,15 @@ static int __devexit ab8500_charger_remove(struct platform_device *pdev) > static int __devinit ab8500_charger_probe(struct platform_device *pdev) > { > int irq, i, charger_status, ret = 0; > - struct abx500_bm_plat_data *plat_data; > + struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data; > + struct ab8500_charger *di; > > - struct ab8500_charger *di = > - kzalloc(sizeof(struct ab8500_charger), GFP_KERNEL); > + if (!plat_data) { > + dev_err(&pdev->dev, "No platform data\n"); > + return -EINVAL; > + } > + > + di = kzalloc(sizeof(*di), GFP_KERNEL); > if (!di) > return -ENOMEM; > > @@ -2550,13 +2555,12 @@ static int __devinit ab8500_charger_probe(struct platform_device *pdev) > spin_lock_init(&di->usb_state.usb_lock); > > /* get charger specific platform data */ > - plat_data = pdev->dev.platform_data; > - if (!plat_data || !plat_data->charger) { > + di->pdata = plat_data->charger; > + if (!di->pdata) { > 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; > diff --git a/drivers/power/ab8500_fg.c b/drivers/power/ab8500_fg.c > index 0ebea39..bf02225 100644 > --- a/drivers/power/ab8500_fg.c > +++ b/drivers/power/ab8500_fg.c > @@ -2446,10 +2446,15 @@ static int __devinit ab8500_fg_probe(struct platform_device *pdev) > { > int i, irq; > int ret = 0; > - struct abx500_bm_plat_data *plat_data; > + struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data; > + struct ab8500_fg *di; > + > + if (!plat_data) { > + dev_err(&pdev->dev, "No platform data\n"); > + return -EINVAL; > + } > > - struct ab8500_fg *di = > - kzalloc(sizeof(struct ab8500_fg), GFP_KERNEL); > + di = kzalloc(sizeof(*di), GFP_KERNEL); > if (!di) > return -ENOMEM; > > @@ -2461,13 +2466,12 @@ static int __devinit ab8500_fg_probe(struct platform_device *pdev) > di->gpadc = ab8500_gpadc_get("ab8500-gpadc.0"); > > /* get fg specific platform data */ > - plat_data = pdev->dev.platform_data; > - if (!plat_data || !plat_data->fg) { > + di->pdata = plat_data->fg; > + if (!di->pdata) { > dev_err(di->dev, "no fg platform data supplied\n"); > ret = -EINVAL; > goto free_device_info; > } > - di->pdata = plat_data->fg; > > /* get battery specific platform data */ > di->bat = plat_data->battery;
-- Lee Jones Linaro ST-Ericsson Landing Team Lead M: +44 77 88 633 515 Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |