2013-08-19 01:30:10

by Chao Xie

[permalink] [raw]
Subject: [PATCH 0/2] mfd: 88pm8xx: platform data bug fix

The patches fix the bug that pdata may be NULL when driver uses it.

Chao Xie (2):
mfd: 88pm800: Fix the bug that pdata may be NULL
mfd: 88pm805: Fix the bug that pdata may be NULL

drivers/mfd/88pm800.c | 10 ++++++----
drivers/mfd/88pm805.c | 2 +-
2 files changed, 7 insertions(+), 5 deletions(-)

--
1.7.4.1


2013-08-19 01:27:27

by Chao Xie

[permalink] [raw]
Subject: [PATCH 2/2] mfd: 88pm805: Fix the bug that pdata may be NULL

User pass platform data to device, and platform data may be
NULL. Add the check for pdata.

Signed-off-by: Chao Xie <[email protected]>
---
drivers/mfd/88pm805.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/88pm805.c b/drivers/mfd/88pm805.c
index 5216022..57135bb 100644
--- a/drivers/mfd/88pm805.c
+++ b/drivers/mfd/88pm805.c
@@ -243,7 +243,7 @@ static int pm805_probe(struct i2c_client *client,
goto err_805_init;
}

- if (pdata->plat_config)
+ if (pdata && pdata->plat_config)
pdata->plat_config(chip, pdata);

err_805_init:
--
1.7.4.1

2013-08-19 01:29:19

by Chao Xie

[permalink] [raw]
Subject: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

User pass platform data to device, and platform data may be
NULL. Add the check for pdata.

Signed-off-by: Chao Xie <[email protected]>
---
drivers/mfd/88pm800.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index 6c95483..d4d272f 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -333,9 +333,11 @@ static int device_rtc_init(struct pm80x_chip *chip,
{
int ret;

- rtc_devs[0].platform_data = pdata->rtc;
- rtc_devs[0].pdata_size =
- pdata->rtc ? sizeof(struct pm80x_rtc_pdata) : 0;
+ if (pdata) {
+ rtc_devs[0].platform_data = pdata->rtc;
+ rtc_devs[0].pdata_size =
+ pdata->rtc ? sizeof(struct pm80x_rtc_pdata) : 0;
+ }
ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0],
ARRAY_SIZE(rtc_devs), NULL, 0, NULL);
if (ret) {
@@ -578,7 +580,7 @@ static int pm800_probe(struct i2c_client *client,
goto err_device_init;
}

- if (pdata->plat_config)
+ if (pdata && pdata->plat_config)
pdata->plat_config(chip, pdata);

return 0;
--
1.7.4.1

2013-08-20 01:40:46

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

Hi Xie,

On Sun, Aug 18, 2013 at 09:27:54PM -0400, Chao Xie wrote:
> User pass platform data to device, and platform data may be
> NULL.
In which case do you get that ? With DT ?
Should rtc_init fail when pdata is NULL ?

You need to explain that, be it only for us to know if it's a critical
fix or not.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/

2013-08-27 06:11:59

by Chao Xie

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

On Tue, Aug 20, 2013 at 9:40 AM, Samuel Ortiz <[email protected]> wrote:
> Hi Xie,
>
> On Sun, Aug 18, 2013 at 09:27:54PM -0400, Chao Xie wrote:
>> User pass platform data to device, and platform data may be
>> NULL.
> In which case do you get that ? With DT ?
> Should rtc_init fail when pdata is NULL ?
>
> You need to explain that, be it only for us to know if it's a critical
> fix or not.
>
Sorry for late response.
If pdata is NULL, the driver will fail. So the error check should be done at
the beginning of probe.
If (!pdata)
return -EINVAL;

Is that OK?

> Cheers,
> Samuel.
>
> --
> Intel Open Source Technology Centre
> http://oss.intel.com/

2013-08-30 12:31:01

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

Hi Xie,

On Tue, Aug 27, 2013 at 02:11:58PM +0800, Chao Xie wrote:
> On Tue, Aug 20, 2013 at 9:40 AM, Samuel Ortiz <[email protected]> wrote:
> > Hi Xie,
> >
> > On Sun, Aug 18, 2013 at 09:27:54PM -0400, Chao Xie wrote:
> >> User pass platform data to device, and platform data may be
> >> NULL.
> > In which case do you get that ? With DT ?
> > Should rtc_init fail when pdata is NULL ?
> >
> > You need to explain that, be it only for us to know if it's a critical
> > fix or not.
> >
> Sorry for late response.
> If pdata is NULL, the driver will fail.
The question is: Why would pdata be NULL ? If there's a fundamental
issue you're hiding with this patch, you probably want to fix the real
problem instead.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/

2013-09-02 01:21:07

by Chao Xie

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

On Fri, Aug 30, 2013 at 8:30 PM, Samuel Ortiz <[email protected]> wrote:
> Hi Xie,
>
> On Tue, Aug 27, 2013 at 02:11:58PM +0800, Chao Xie wrote:
>> On Tue, Aug 20, 2013 at 9:40 AM, Samuel Ortiz <[email protected]> wrote:
>> > Hi Xie,
>> >
>> > On Sun, Aug 18, 2013 at 09:27:54PM -0400, Chao Xie wrote:
>> >> User pass platform data to device, and platform data may be
>> >> NULL.
>> > In which case do you get that ? With DT ?
>> > Should rtc_init fail when pdata is NULL ?
>> >
>> > You need to explain that, be it only for us to know if it's a critical
>> > fix or not.
>> >
>> Sorry for late response.
>> If pdata is NULL, the driver will fail.
> The question is: Why would pdata be NULL ? If there's a fundamental
> issue you're hiding with this patch, you probably want to fix the real
> problem instead.
>
Maybe i do not explain it clearly.
The error is detected y some software checking tool.
Pdata is passed from dev->platform_data.
If the user pass the dev->platform_data to be NULL, at least mfd device driver
need detect it, and reject it if it is not accpetable like return -EINVAL.
Then the following probing code will not cause kernel panic if we
access pdata->xxx.

> Cheers,
> Samuel.
>
> --
> Intel Open Source Technology Centre
> http://oss.intel.com/

2013-09-02 08:50:17

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: 88pm800: Fix the bug that pdata may be NULL

Hi Chao,

On Mon, Sep 02, 2013 at 09:21:04AM +0800, Chao Xie wrote:
> On Fri, Aug 30, 2013 at 8:30 PM, Samuel Ortiz <[email protected]> wrote:
> > Hi Xie,
> >
> > On Tue, Aug 27, 2013 at 02:11:58PM +0800, Chao Xie wrote:
> >> On Tue, Aug 20, 2013 at 9:40 AM, Samuel Ortiz <[email protected]> wrote:
> >> > Hi Xie,
> >> >
> >> > On Sun, Aug 18, 2013 at 09:27:54PM -0400, Chao Xie wrote:
> >> >> User pass platform data to device, and platform data may be
> >> >> NULL.
> >> > In which case do you get that ? With DT ?
> >> > Should rtc_init fail when pdata is NULL ?
> >> >
> >> > You need to explain that, be it only for us to know if it's a critical
> >> > fix or not.
> >> >
> >> Sorry for late response.
> >> If pdata is NULL, the driver will fail.
> > The question is: Why would pdata be NULL ? If there's a fundamental
> > issue you're hiding with this patch, you probably want to fix the real
> > problem instead.
> >
> Maybe i do not explain it clearly.
> The error is detected y some software checking tool.
Ok, that's clearer. So it's not an actual bug you saw in practice, I'll
modify the changelog accordingly.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/