[PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array

Chen Ni posted 1 patch 1 week, 4 days ago
drivers/iio/adc/vf610_adc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array
Posted by Chen Ni 1 week, 4 days ago
Add check for the return value of device_property_read_u32_array() and
return the error if it fails in order to catch the error.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/iio/adc/vf610_adc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
index d7182ed0d2a7..d53723ccc5b2 100644
--- a/drivers/iio/adc/vf610_adc.c
+++ b/drivers/iio/adc/vf610_adc.c
@@ -871,7 +871,10 @@ static int vf610_adc_probe(struct platform_device *pdev)
 
 	info->vref_uv = regulator_get_voltage(info->vref);
 
-	device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3);
+	ret = device_property_read_u32_array(dev, "fsl,adck-max-frequency",
+					     info->max_adck_rate, 3);
+	if (ret)
+		return ret;
 
 	info->adc_feature.default_sample_time = DEFAULT_SAMPLE_TIME;
 	device_property_read_u32(dev, "min-sample-time", &info->adc_feature.default_sample_time);
-- 
2.25.1
Re: [PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array
Posted by Nuno Sá 1 week, 4 days ago
On Wed, 2026-01-28 at 12:27 +0800, Chen Ni wrote:
> Add check for the return value of device_property_read_u32_array() and
> return the error if it fails in order to catch the error.
> 
> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
> ---
>  drivers/iio/adc/vf610_adc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
> index d7182ed0d2a7..d53723ccc5b2 100644
> --- a/drivers/iio/adc/vf610_adc.c
> +++ b/drivers/iio/adc/vf610_adc.c
> @@ -871,7 +871,10 @@ static int vf610_adc_probe(struct platform_device *pdev)
>  
>  	info->vref_uv = regulator_get_voltage(info->vref);
>  
> -	device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3);
> +	ret = device_property_read_u32_array(dev, "fsl,adck-max-frequency",
> +					     info->max_adck_rate, 3);
> +	if (ret)
> +		return ret;

As Andy pointed out, this is changing behavior so it needs to be properly justified. Also since we
are here, maybe use ARRAY_SIZE(info->max_adck_rate).

- Nuno Sá

>  
>  	info->adc_feature.default_sample_time = DEFAULT_SAMPLE_TIME;
>  	device_property_read_u32(dev, "min-sample-time", &info->adc_feature.default_sample_time);
Re: [PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array
Posted by Jonathan Cameron 1 week, 2 days ago
On Wed, 28 Jan 2026 09:29:47 +0000
Nuno Sá <noname.nuno@gmail.com> wrote:

> On Wed, 2026-01-28 at 12:27 +0800, Chen Ni wrote:
> > Add check for the return value of device_property_read_u32_array() and
> > return the error if it fails in order to catch the error.
> > 
> > Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
> > ---
> >  drivers/iio/adc/vf610_adc.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
> > index d7182ed0d2a7..d53723ccc5b2 100644
> > --- a/drivers/iio/adc/vf610_adc.c
> > +++ b/drivers/iio/adc/vf610_adc.c
> > @@ -871,7 +871,10 @@ static int vf610_adc_probe(struct platform_device *pdev)
> >  
> >  	info->vref_uv = regulator_get_voltage(info->vref);
> >  
> > -	device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3);
> > +	ret = device_property_read_u32_array(dev, "fsl,adck-max-frequency",
> > +					     info->max_adck_rate, 3);
> > +	if (ret)
> > +		return ret;  
> 
> As Andy pointed out, this is changing behavior so it needs to be properly justified. Also since we
> are here, maybe use ARRAY_SIZE(info->max_adck_rate).
> 
Given the driver has a fallback for info->max_adck_rate[x] == 0
I think this is intentional.  It would be clearer if this had done.

	info->max_adck_rate[0] = 8;
	info->max_adck_rate[1] = 8;
	info->max_adck_rate[2] = 8;
	device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3);

though rather than where it has the fallback in vf610_adc_calculate_rates()


> - Nuno Sá
> 
> >  
> >  	info->adc_feature.default_sample_time = DEFAULT_SAMPLE_TIME;
> >  	device_property_read_u32(dev, "min-sample-time", &info->adc_feature.default_sample_time);  
Re: [PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array
Posted by Andy Shevchenko 1 week, 2 days ago
On Thu, Jan 29, 2026 at 05:40:21PM +0000, Jonathan Cameron wrote:
> On Wed, 28 Jan 2026 09:29:47 +0000
> Nuno Sá <noname.nuno@gmail.com> wrote:
> > On Wed, 2026-01-28 at 12:27 +0800, Chen Ni wrote:

...

> Given the driver has a fallback for info->max_adck_rate[x] == 0
> I think this is intentional.  It would be clearer if this had done.
> 
> 	info->max_adck_rate[0] = 8;
> 	info->max_adck_rate[1] = 8;
> 	info->max_adck_rate[2] = 8;

Just in case, we have memset32() if it fits :-)

> 	device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3);
> 
> though rather than where it has the fallback in vf610_adc_calculate_rates()
> 

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] iio: adc: vf610: Add missing check for device_property_read_u32_array
Posted by Andy Shevchenko 1 week, 4 days ago
On Wed, Jan 28, 2026 at 12:27:00PM +0800, Chen Ni wrote:
> Add check for the return value of device_property_read_u32_array() and
> return the error if it fails in order to catch the error.

Why? Is this mandatory property or optional?

-- 
With Best Regards,
Andy Shevchenko