2019-01-23 07:01:05

by Yue Haibing

[permalink] [raw]
Subject: [PATCH -next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device

Fix a static code checker warning:
drivers/mtd/devices/docg3.c:1875
doc_probe_device() warn: passing zero to 'ERR_PTR'

Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/mtd/devices/docg3.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index 4c94fc0..60ddc38 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1872,7 +1872,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
nomem2:
kfree(docg3);
nomem1:
- return ERR_PTR(ret);
+ return ret ? ERR_PTR(ret) : NULL;
}

/**
--
2.7.0




2019-01-23 09:14:21

by Boris Brezillon

[permalink] [raw]
Subject: Re: [PATCH -next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device

On Wed, 23 Jan 2019 14:58:27 +0800
YueHaibing <[email protected]> wrote:

> Fix a static code checker warning:
> drivers/mtd/devices/docg3.c:1875
> doc_probe_device() warn: passing zero to 'ERR_PTR'
>
> Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/mtd/devices/docg3.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
> index 4c94fc0..60ddc38 100644
> --- a/drivers/mtd/devices/docg3.c
> +++ b/drivers/mtd/devices/docg3.c
> @@ -1872,7 +1872,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
> nomem2:
> kfree(docg3);
> nomem1:
> - return ERR_PTR(ret);
> + return ret ? ERR_PTR(ret) : NULL;
> }
>

This is not the right fix, you should instead set ret to -EINVAL:

--->8---
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index 4c94fc096696..6b84db411232 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1842,7 +1842,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
chip_id = doc_register_readw(docg3, DOC_CHIPID);
chip_id_inv = doc_register_readw(docg3, DOC_CHIPID_INV);

- ret = 0;
+ ret = -ENOMEM;
if (chip_id != (u16)(~chip_id_inv)) {
goto nomem4;
}

2019-01-23 09:46:38

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH -next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device


On 2019/1/23 17:12, Boris Brezillon wrote:
> On Wed, 23 Jan 2019 14:58:27 +0800
> YueHaibing <[email protected]> wrote:
>
>> Fix a static code checker warning:
>> drivers/mtd/devices/docg3.c:1875
>> doc_probe_device() warn: passing zero to 'ERR_PTR'
>>
>> Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
>> Signed-off-by: YueHaibing <[email protected]>
>> ---
>> drivers/mtd/devices/docg3.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
>> index 4c94fc0..60ddc38 100644
>> --- a/drivers/mtd/devices/docg3.c
>> +++ b/drivers/mtd/devices/docg3.c
>> @@ -1872,7 +1872,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
>> nomem2:
>> kfree(docg3);
>> nomem1:
>> - return ERR_PTR(ret);
>> + return ret ? ERR_PTR(ret) : NULL;
>> }
>>
>
> This is not the right fix, you should instead set ret to -EINVAL:

Thanks , will fix it in v2.

And seems doc_probe_device cannot return NULL. The NULL check of doc_probe_device
in docg3_probe also can been removed, right?

>
> --->8---
> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
> index 4c94fc096696..6b84db411232 100644
> --- a/drivers/mtd/devices/docg3.c
> +++ b/drivers/mtd/devices/docg3.c
> @@ -1842,7 +1842,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
> chip_id = doc_register_readw(docg3, DOC_CHIPID);
> chip_id_inv = doc_register_readw(docg3, DOC_CHIPID_INV);
>
> - ret = 0;
> + ret = -ENOMEM;
> if (chip_id != (u16)(~chip_id_inv)) {
> goto nomem4;
> }
>
> .
>


2019-01-23 09:55:49

by Boris Brezillon

[permalink] [raw]
Subject: Re: [PATCH -next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device

On Wed, 23 Jan 2019 17:43:58 +0800
YueHaibing <[email protected]> wrote:

> On 2019/1/23 17:12, Boris Brezillon wrote:
> > On Wed, 23 Jan 2019 14:58:27 +0800
> > YueHaibing <[email protected]> wrote:
> >
> >> Fix a static code checker warning:
> >> drivers/mtd/devices/docg3.c:1875
> >> doc_probe_device() warn: passing zero to 'ERR_PTR'
> >>
> >> Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
> >> Signed-off-by: YueHaibing <[email protected]>
> >> ---
> >> drivers/mtd/devices/docg3.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
> >> index 4c94fc0..60ddc38 100644
> >> --- a/drivers/mtd/devices/docg3.c
> >> +++ b/drivers/mtd/devices/docg3.c
> >> @@ -1872,7 +1872,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
> >> nomem2:
> >> kfree(docg3);
> >> nomem1:
> >> - return ERR_PTR(ret);
> >> + return ret ? ERR_PTR(ret) : NULL;
> >> }
> >>
> >
> > This is not the right fix, you should instead set ret to -EINVAL:
>
> Thanks , will fix it in v2.
>
> And seems doc_probe_device cannot return NULL. The NULL check of doc_probe_device
> in docg3_probe also can been removed, right?

Hm, looks like the ret = 0 was intentional (to identify when ID is
invalid). Let's just keep your initial patch.

2019-01-23 20:50:07

by Robert Jarzmik

[permalink] [raw]
Subject: Re: [PATCH -next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device

Boris Brezillon <[email protected]> writes:

> On Wed, 23 Jan 2019 17:43:58 +0800
> YueHaibing <[email protected]> wrote:
>
>> On 2019/1/23 17:12, Boris Brezillon wrote:
>> > On Wed, 23 Jan 2019 14:58:27 +0800
>> > YueHaibing <[email protected]> wrote:
>> >
>> >> Fix a static code checker warning:
>> >> drivers/mtd/devices/docg3.c:1875
>> >> doc_probe_device() warn: passing zero to 'ERR_PTR'
>> >>
>> >> Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
>> >> Signed-off-by: YueHaibing <[email protected]>
>> >> ---
>> >> drivers/mtd/devices/docg3.c | 2 +-
>> >> 1 file changed, 1 insertion(+), 1 deletion(-)
>> >>
>> >> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
>> >> index 4c94fc0..60ddc38 100644
>> >> --- a/drivers/mtd/devices/docg3.c
>> >> +++ b/drivers/mtd/devices/docg3.c
>> >> @@ -1872,7 +1872,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
>> >> nomem2:
>> >> kfree(docg3);
>> >> nomem1:
>> >> - return ERR_PTR(ret);
>> >> + return ret ? ERR_PTR(ret) : NULL;
>> >> }
>> >>
>> >
>> > This is not the right fix, you should instead set ret to -EINVAL:
>>
>> Thanks , will fix it in v2.
>>
>> And seems doc_probe_device cannot return NULL. The NULL check of doc_probe_device
>> in docg3_probe also can been removed, right?
>
> Hm, looks like the ret = 0 was intentional (to identify when ID is
> invalid). Let's just keep your initial patch.
Indeed, that's for the multiple floor configuration if I remember correctly.

Acked-by: Robert Jarzmik <[email protected]>

Cheers.

--
Robert

2019-01-28 09:37:57

by Boris Brezillon

[permalink] [raw]
Subject: Re: [-next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device

On Wed, 2019-01-23 at 06:58:27 UTC, YueHaibing wrote:
> Fix a static code checker warning:
> drivers/mtd/devices/docg3.c:1875
> doc_probe_device() warn: passing zero to 'ERR_PTR'
>
> Fixes: ae9d4934b2d7 ("mtd: docg3: add multiple floor support")
> Signed-off-by: YueHaibing <[email protected]>
> Acked-by: Robert Jarzmik <[email protected]>

Applied to http://git.infradead.org/linux-mtd.git mtd/next, thanks.

Boris