diff mbox series

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

Message ID 20190123065827.16748-1-yuehaibing@huawei.com
State Accepted
Delegated to: Boris Brezillon
Headers show
Series [-next] mtd: docg3: Fix passing zero to 'PTR_ERR' warning in doc_probe_device | expand

Commit Message

Yue Haibing Jan. 23, 2019, 6:58 a.m. UTC
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 <yuehaibing@huawei.com>
---
 drivers/mtd/devices/docg3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Boris Brezillon Jan. 23, 2019, 9:12 a.m. UTC | #1
On Wed, 23 Jan 2019 14:58:27 +0800
YueHaibing <yuehaibing@huawei.com> 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 <yuehaibing@huawei.com>
> ---
>  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;
        }
Yue Haibing Jan. 23, 2019, 9:43 a.m. UTC | #2
On 2019/1/23 17:12, Boris Brezillon wrote:
> On Wed, 23 Jan 2019 14:58:27 +0800
> YueHaibing <yuehaibing@huawei.com> 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 <yuehaibing@huawei.com>
>> ---
>>  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;
>         }
> 
> .
>
Boris Brezillon Jan. 23, 2019, 9:52 a.m. UTC | #3
On Wed, 23 Jan 2019 17:43:58 +0800
YueHaibing <yuehaibing@huawei.com> wrote:

> On 2019/1/23 17:12, Boris Brezillon wrote:
> > On Wed, 23 Jan 2019 14:58:27 +0800
> > YueHaibing <yuehaibing@huawei.com> 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 <yuehaibing@huawei.com>
> >> ---
> >>  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.
Robert Jarzmik Jan. 23, 2019, 8:49 p.m. UTC | #4
Boris Brezillon <bbrezillon@kernel.org> writes:

> On Wed, 23 Jan 2019 17:43:58 +0800
> YueHaibing <yuehaibing@huawei.com> wrote:
>
>> On 2019/1/23 17:12, Boris Brezillon wrote:
>> > On Wed, 23 Jan 2019 14:58:27 +0800
>> > YueHaibing <yuehaibing@huawei.com> 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 <yuehaibing@huawei.com>
>> >> ---
>> >>  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 <robert.jarzmik@free.fr>

Cheers.
Boris Brezillon Jan. 28, 2019, 9:36 a.m. UTC | #5
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 <yuehaibing@huawei.com>
> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>

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

Boris
diff mbox series

Patch

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;
 }
 
 /**