diff mbox

[-next] IIO: ADC: fix return value check in stm32_dfsdm_adc_probe()

Message ID 1515669161-125426-1-git-send-email-weiyongjun1@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wei Yongjun Jan. 11, 2018, 11:12 a.m. UTC
In case of error, the function devm_iio_device_alloc() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value check
should be replaced with NULL test.

Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 drivers/iio/adc/stm32-dfsdm-adc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Dan Carpenter Jan. 11, 2018, 9:28 p.m. UTC | #1
On Thu, Jan 11, 2018 at 11:12:41AM +0000, Wei Yongjun wrote:
> In case of error, the function devm_iio_device_alloc() returns NULL
> pointer not ERR_PTR(). The IS_ERR() test in the return value check
> should be replaced with NULL test.
> 
> Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support")
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
> ---
>  drivers/iio/adc/stm32-dfsdm-adc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
> index e628d04..5e87140 100644
> --- a/drivers/iio/adc/stm32-dfsdm-adc.c
> +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
> @@ -1100,9 +1100,9 @@ static int stm32_dfsdm_adc_probe(struct platform_device *pdev)
>  	dev_data = (const struct stm32_dfsdm_dev_data *)of_id->data;
>  
>  	iio = devm_iio_device_alloc(dev, sizeof(*adc));
> -	if (IS_ERR(iio)) {
> +	if (!iio) {
>  		dev_err(dev, "%s: Failed to allocate IIO\n", __func__);
> -		return PTR_ERR(iio);
> +		return -ENOMEM;
>  	}
>  
>  	adc = iio_priv(iio);
        ^^^^^^^^^^^^^^^^^^
This one doesn't return an error pointer either.  The check causes a
static check warning for me.  (It can't actually fail, though so maybe
it will return an error pointer in the future?)

regards,
dan carpenter
Wei Yongjun Jan. 12, 2018, 1:37 a.m. UTC | #2
> 
> On Thu, Jan 11, 2018 at 11:12:41AM +0000, Wei Yongjun wrote:
> > In case of error, the function devm_iio_device_alloc() returns NULL
> > pointer not ERR_PTR(). The IS_ERR() test in the return value check
> > should be replaced with NULL test.
> >
> > Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC
> support")
> > Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
> > ---
> >  drivers/iio/adc/stm32-dfsdm-adc.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-
> dfsdm-adc.c
> > index e628d04..5e87140 100644
> > --- a/drivers/iio/adc/stm32-dfsdm-adc.c
> > +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
> > @@ -1100,9 +1100,9 @@ static int stm32_dfsdm_adc_probe(struct
> platform_device *pdev)
> >  	dev_data = (const struct stm32_dfsdm_dev_data *)of_id->data;
> >
> >  	iio = devm_iio_device_alloc(dev, sizeof(*adc));
> > -	if (IS_ERR(iio)) {
> > +	if (!iio) {
> >  		dev_err(dev, "%s: Failed to allocate IIO\n", __func__);
> > -		return PTR_ERR(iio);
> > +		return -ENOMEM;
> >  	}
> >
> >  	adc = iio_priv(iio);
>         ^^^^^^^^^^^^^^^^^^
> This one doesn't return an error pointer either.  The check causes a
> static check warning for me.  (It can't actually fail, though so maybe
> it will return an error pointer in the future?)

It seems that we can simply remove the check since 'adc' can never
be an invalid address here.

Regards,
Yongjun Wei
Arnaud POULIQUEN Jan. 12, 2018, 9:37 a.m. UTC | #3
On 01/12/2018 02:37 AM, weiyongjun (A) wrote:
>>
>> On Thu, Jan 11, 2018 at 11:12:41AM +0000, Wei Yongjun wrote:
>>> In case of error, the function devm_iio_device_alloc() returns NULL
>>> pointer not ERR_PTR(). The IS_ERR() test in the return value check
>>> should be replaced with NULL test.
>>>
>>> Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC
>> support")
>>> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
>>> ---
>>>  drivers/iio/adc/stm32-dfsdm-adc.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-
>> dfsdm-adc.c
>>> index e628d04..5e87140 100644
>>> --- a/drivers/iio/adc/stm32-dfsdm-adc.c
>>> +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
>>> @@ -1100,9 +1100,9 @@ static int stm32_dfsdm_adc_probe(struct
>> platform_device *pdev)
>>>  	dev_data = (const struct stm32_dfsdm_dev_data *)of_id->data;
>>>
>>>  	iio = devm_iio_device_alloc(dev, sizeof(*adc));
>>> -	if (IS_ERR(iio)) {
>>> +	if (!iio) {
>>>  		dev_err(dev, "%s: Failed to allocate IIO\n", __func__);
>>> -		return PTR_ERR(iio);
>>> +		return -ENOMEM;
>>>  	}
>>>
>>>  	adc = iio_priv(iio);
>>         ^^^^^^^^^^^^^^^^^^
>> This one doesn't return an error pointer either.  The check causes a
>> static check warning for me.  (It can't actually fail, though so maybe
>> it will return an error pointer in the future?)
> 
> It seems that we can simply remove the check since 'adc' can never
> be an invalid address here.

Agree, i'm preparing patches for all issue you highlight,

Thanks for all your remarks
Arnaud
> 
> Regards,
> Yongjun Wei
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
diff mbox

Patch

diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
index e628d04..5e87140 100644
--- a/drivers/iio/adc/stm32-dfsdm-adc.c
+++ b/drivers/iio/adc/stm32-dfsdm-adc.c
@@ -1100,9 +1100,9 @@  static int stm32_dfsdm_adc_probe(struct platform_device *pdev)
 	dev_data = (const struct stm32_dfsdm_dev_data *)of_id->data;
 
 	iio = devm_iio_device_alloc(dev, sizeof(*adc));
-	if (IS_ERR(iio)) {
+	if (!iio) {
 		dev_err(dev, "%s: Failed to allocate IIO\n", __func__);
-		return PTR_ERR(iio);
+		return -ENOMEM;
 	}
 
 	adc = iio_priv(iio);