* [PATCH 1/3] power/ab8500_charger: harden platform data check @ 2012-04-13 8:15 Linus Walleij 2012-04-13 8:42 ` Arun MURTHY 2012-04-28 12:59 ` Linus Walleij 0 siblings, 2 replies; 14+ messages in thread From: Linus Walleij @ 2012-04-13 8:15 UTC (permalink / raw) To: Anton Vorontsov, linux-kernel Cc: Karl Komierowski, Linus Walleij, Arun Murthy From: Linus Walleij <linus.walleij@linaro.org> 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. Cc: Arun Murthy <arun.murthy@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/power/ab8500_charger.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c index e2b4acc..79dc584 100644 --- a/drivers/power/ab8500_charger.c +++ b/drivers/power/ab8500_charger.c @@ -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; -- 1.7.9.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* RE: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-13 8:15 [PATCH 1/3] power/ab8500_charger: harden platform data check Linus Walleij @ 2012-04-13 8:42 ` Arun MURTHY 2012-05-05 12:06 ` Anton Vorontsov 2012-04-28 12:59 ` Linus Walleij 1 sibling, 1 reply; 14+ messages in thread From: Arun MURTHY @ 2012-04-13 8:42 UTC (permalink / raw) To: Linus WALLEIJ, Anton Vorontsov, linux-kernel@vger.kernel.org Cc: Karl KOMIEROWSKI, Linus Walleij > From: Linus Walleij <linus.walleij@linaro.org> > > 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. > > Cc: Arun Murthy <arun.murthy@stericsson.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- Acked-by: Arun Murthy <arun.murthy@stericsson.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-13 8:42 ` Arun MURTHY @ 2012-05-05 12:06 ` Anton Vorontsov 0 siblings, 0 replies; 14+ messages in thread From: Anton Vorontsov @ 2012-05-05 12:06 UTC (permalink / raw) To: Arun MURTHY Cc: Linus WALLEIJ, linux-kernel@vger.kernel.org, Karl KOMIEROWSKI, Linus Walleij, Lee Jones On Fri, Apr 13, 2012 at 10:42:59AM +0200, Arun MURTHY wrote: > > From: Linus Walleij <linus.walleij@linaro.org> > > > > 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. > > > > Cc: Arun Murthy <arun.murthy@stericsson.com> > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > > --- > > Acked-by: Arun Murthy <arun.murthy@stericsson.com> Thanks guys, all three patches now applied! -- Anton Vorontsov Email: cbouatmailru@gmail.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-13 8:15 [PATCH 1/3] power/ab8500_charger: harden platform data check Linus Walleij 2012-04-13 8:42 ` Arun MURTHY @ 2012-04-28 12:59 ` Linus Walleij 2012-04-28 16:38 ` Lee Jones 2012-05-02 11:31 ` Lee Jones 1 sibling, 2 replies; 14+ messages in thread From: Linus Walleij @ 2012-04-28 12:59 UTC (permalink / raw) To: Anton Vorontsov, Lee Jones; +Cc: linux-kernel, Karl Komierowski, Arun Murthy On Fri, Apr 13, 2012 at 10:15 AM, Linus Walleij <linus.walleij@stericsson.com> wrote: > From: Linus Walleij <linus.walleij@linaro.org> > > 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. > > Cc: Arun Murthy <arun.murthy@stericsson.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Anton have you picked these three patches for the -rc:s? It seems Lee Jones is facing the problems so would be nice to have this upstream. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-28 12:59 ` Linus Walleij @ 2012-04-28 16:38 ` Lee Jones 2012-05-05 12:08 ` Anton Vorontsov 2012-05-02 11:31 ` Lee Jones 1 sibling, 1 reply; 14+ messages in thread From: Lee Jones @ 2012-04-28 16:38 UTC (permalink / raw) To: Linus Walleij Cc: Anton Vorontsov, linux-kernel, Karl Komierowski, Arun Murthy Find my version of the 3 patches below. These also clean up some ugliness and brings the variable initialisation formatting more into line with other drivers. If you like them I can officially send them to the MLs as patches. Your call of course. On 28/04/12 13:59, Linus Walleij wrote: > On Fri, Apr 13, 2012 at 10:15 AM, Linus Walleij > <linus.walleij@stericsson.com> wrote: > >> From: Linus Walleij<linus.walleij@linaro.org> >> >> 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. >> >> Cc: Arun Murthy<arun.murthy@stericsson.com> >> Signed-off-by: Linus Walleij<linus.walleij@linaro.org> > > Anton have you picked these three patches for the -rc:s? > > It seems Lee Jones is facing the problems so would be nice to > have this upstream. > > Yours, > Linus Walleij diff --git a/drivers/power/ab8500_btemp.c b/drivers/power/ab8500_btemp.c index d8bb993..a2ebcb4 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(struct ab8500_btemp), GFP_KERNEL); if (!di) return -ENOMEM; @@ -977,7 +982,6 @@ 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; di->pdata = plat_data->btemp; if (!di->pdata) { dev_err(di->dev, "no btemp platform data supplied\n"); ############################################################################## diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c index e2b4acc..a4e37a8 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(struct ab8500_charger), GFP_KERNEL); if (!di) return -ENOMEM; @@ -2550,7 +2555,6 @@ 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; di->pdata = plat_data->charger; if (!di->pdata) { ############################################################################## diff --git a/drivers/power/ab8500_fg.c b/drivers/power/ab8500_fg.c index c22f2f0..d88bc47 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(struct ab8500_fg), GFP_KERNEL); if (!di) return -ENOMEM; @@ -2461,7 +2466,6 @@ 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; di->pdata = plat_data->fg; if (!di->pdata) { dev_err(di->dev, "no fg platform data supplied\n"); -- 1.7.9.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-28 16:38 ` Lee Jones @ 2012-05-05 12:08 ` Anton Vorontsov [not found] ` <CAF2Aj3hy3KOsH3aiZ0UpuERSwOoqFdYQ4su-hEVcU-qp8r5d9A@mail.gmail.com> 2012-05-22 11:34 ` Lee Jones 0 siblings, 2 replies; 14+ messages in thread From: Anton Vorontsov @ 2012-05-05 12:08 UTC (permalink / raw) To: Lee Jones; +Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy On Sat, Apr 28, 2012 at 05:38:13PM +0100, Lee Jones wrote: > Find my version of the 3 patches below. > > These also clean up some ugliness and brings the variable initialisation > formatting more into line with other drivers. If you like them I can > officially send them to the MLs as patches. > > Your call of course. Sorry for the delay. I like these cleanups. The patch below is what I've applied on top of Linus' series. Please check if there's everything OK. Notice that I inserted your Signed-off-by line in advance. But for the history, please provide your formal sign-off (no need to resend the patch, publicly replying to this email with something like 'Signed-off-by: Lee Jones <lee.jones@linaro.org>' would work ;-) Much thanks! - - - - 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; ^ permalink raw reply related [flat|nested] 14+ messages in thread
[parent not found: <CAF2Aj3hy3KOsH3aiZ0UpuERSwOoqFdYQ4su-hEVcU-qp8r5d9A@mail.gmail.com>]
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check [not found] ` <CAF2Aj3hy3KOsH3aiZ0UpuERSwOoqFdYQ4su-hEVcU-qp8r5d9A@mail.gmail.com> @ 2012-05-05 21:55 ` Anton Vorontsov 2012-05-06 7:25 ` Lee Jones 0 siblings, 1 reply; 14+ messages in thread From: Anton Vorontsov @ 2012-05-05 21:55 UTC (permalink / raw) To: Lee Jones; +Cc: Karl Komierowski, Arun Murthy, linux-kernel, Linus Walleij On Sat, May 05, 2012 at 05:55:09PM +0100, Lee Jones wrote: > Do you have a public tree/branch that I can look at so I may see the entire > file please? Yep, here is the gitweb: http://git.infradead.org/battery-2.6.git or git clone git://git.infradead.org/battery-2.6.git Thanks, -- Anton Vorontsov Email: cbouatmailru@gmail.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-05 21:55 ` Anton Vorontsov @ 2012-05-06 7:25 ` Lee Jones 0 siblings, 0 replies; 14+ messages in thread From: Lee Jones @ 2012-05-06 7:25 UTC (permalink / raw) To: Anton Vorontsov Cc: Karl Komierowski, Arun Murthy, linux-kernel, Linus Walleij On 05/05/12 22:55, Anton Vorontsov wrote: > On Sat, May 05, 2012 at 05:55:09PM +0100, Lee Jones wrote: >> Do you have a public tree/branch that I can look at so I may see the entire >> file please? > > Yep, here is the gitweb: > http://git.infradead.org/battery-2.6.git > or > git clone git://git.infradead.org/battery-2.6.git Patches look good. Better as 3 separate commits in case of any potential revert, but for the code: Signed-off-by: Lee Jones <lee.jones@linaro.org> Kind regards, Lee -- 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-05 12:08 ` Anton Vorontsov [not found] ` <CAF2Aj3hy3KOsH3aiZ0UpuERSwOoqFdYQ4su-hEVcU-qp8r5d9A@mail.gmail.com> @ 2012-05-22 11:34 ` Lee Jones 2012-05-22 11:56 ` Anton Vorontsov 1 sibling, 1 reply; 14+ messages in thread From: Lee Jones @ 2012-05-22 11:34 UTC (permalink / raw) To: Anton Vorontsov Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-22 11:34 ` Lee Jones @ 2012-05-22 11:56 ` Anton Vorontsov 2012-05-22 12:03 ` Lee Jones 2012-05-23 19:00 ` Linus Walleij 0 siblings, 2 replies; 14+ messages in thread From: Anton Vorontsov @ 2012-05-22 11:56 UTC (permalink / raw) To: Lee Jones; +Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy Hi Lee, On Tue, May 22, 2012 at 12:34:45PM +0100, Lee Jones wrote: > 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? You probably should have told me that you needed these patches in v3.4, because neither Linus' nor yours patch description did not tell that these were urgent fixes (and not some stuff you'd just like to have for the future). But now I see that ab8500 mfd core driver in v3.4 seem to register the charger and stuff w/o platform data already, so we'd need at least 'Harden platform data check' patches back-ported into -stable. Now once Linus Torvalds pull battery tree, I'll ask Greg KH to cherry-pick the patches into -stable. Thanks! > > 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 -- Anton Vorontsov Email: cbouatmailru@gmail.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-22 11:56 ` Anton Vorontsov @ 2012-05-22 12:03 ` Lee Jones 2012-05-22 13:22 ` Anton Vorontsov 2012-05-23 19:00 ` Linus Walleij 1 sibling, 1 reply; 14+ messages in thread From: Lee Jones @ 2012-05-22 12:03 UTC (permalink / raw) To: Anton Vorontsov Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy Hi Anton, > On Tue, May 22, 2012 at 12:34:45PM +0100, Lee Jones wrote: >> 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? > > You probably should have told me that you needed these patches in > v3.4, because neither Linus' nor yours patch description did not > tell that these were urgent fixes (and not some stuff you'd just > like to have for the future). Ah, I see. I'm sorry this wasn't communicated clearly enough. > But now I see that ab8500 mfd core driver in v3.4 seem to register > the charger and stuff w/o platform data already, so we'd need > at least 'Harden platform data check' patches back-ported into > -stable. Right. > Now once Linus Torvalds pull battery tree, I'll ask Greg KH to > cherry-pick the patches into -stable. Thanks Anton. Are these queued up for the v3.5 merge window also? 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 > -- 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-22 12:03 ` Lee Jones @ 2012-05-22 13:22 ` Anton Vorontsov 0 siblings, 0 replies; 14+ messages in thread From: Anton Vorontsov @ 2012-05-22 13:22 UTC (permalink / raw) To: Lee Jones; +Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy On Tue, May 22, 2012 at 01:03:02PM +0100, Lee Jones wrote: [...] > >Now once Linus Torvalds pull battery tree, I'll ask Greg KH to > >cherry-pick the patches into -stable. > > Thanks Anton. > > Are these queued up for the v3.5 merge window also? Yep. :-) Thanks, -- Anton Vorontsov Email: cbouatmailru@gmail.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-05-22 11:56 ` Anton Vorontsov 2012-05-22 12:03 ` Lee Jones @ 2012-05-23 19:00 ` Linus Walleij 1 sibling, 0 replies; 14+ messages in thread From: Linus Walleij @ 2012-05-23 19:00 UTC (permalink / raw) To: Anton Vorontsov; +Cc: Lee Jones, linux-kernel, Karl Komierowski, Arun Murthy On Tue, May 22, 2012 at 1:56 PM, Anton Vorontsov <anton.vorontsov@linaro.org> wrote: > Hi Lee, > > On Tue, May 22, 2012 at 12:34:45PM +0100, Lee Jones wrote: >> 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? > > You probably should have told me that you needed these patches in > v3.4, because neither Linus' nor yours patch description did not > tell that these were urgent fixes (and not some stuff you'd just > like to have for the future). They are not super-urgent IMO, because there are no defconfigs using them in v3.4. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] power/ab8500_charger: harden platform data check 2012-04-28 12:59 ` Linus Walleij 2012-04-28 16:38 ` Lee Jones @ 2012-05-02 11:31 ` Lee Jones 1 sibling, 0 replies; 14+ messages in thread From: Lee Jones @ 2012-05-02 11:31 UTC (permalink / raw) To: Anton Vorontsov Cc: Linus Walleij, linux-kernel, Karl Komierowski, Arun Murthy On 28/04/12 13:59, Linus Walleij wrote: > On Fri, Apr 13, 2012 at 10:15 AM, Linus Walleij > <linus.walleij@stericsson.com> wrote: > >> From: Linus Walleij<linus.walleij@linaro.org> >> >> 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. >> >> Cc: Arun Murthy<arun.murthy@stericsson.com> >> Signed-off-by: Linus Walleij<linus.walleij@linaro.org> > > Anton have you picked these three patches for the -rc:s? > > It seems Lee Jones is facing the problems so would be nice to > have this upstream. Any chance of an update for this patch-set please? Are you taking in Linus' patches, or would you like me to submit mine? Linus, do you have an opinion? Kind regards, Lee -- 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2012-05-23 19:00 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-13 8:15 [PATCH 1/3] power/ab8500_charger: harden platform data check Linus Walleij
2012-04-13 8:42 ` Arun MURTHY
2012-05-05 12:06 ` Anton Vorontsov
2012-04-28 12:59 ` Linus Walleij
2012-04-28 16:38 ` Lee Jones
2012-05-05 12:08 ` Anton Vorontsov
[not found] ` <CAF2Aj3hy3KOsH3aiZ0UpuERSwOoqFdYQ4su-hEVcU-qp8r5d9A@mail.gmail.com>
2012-05-05 21:55 ` Anton Vorontsov
2012-05-06 7:25 ` Lee Jones
2012-05-22 11:34 ` Lee Jones
2012-05-22 11:56 ` Anton Vorontsov
2012-05-22 12:03 ` Lee Jones
2012-05-22 13:22 ` Anton Vorontsov
2012-05-23 19:00 ` Linus Walleij
2012-05-02 11:31 ` Lee Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).