drivers/iio/adc/vf610_adc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
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
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);
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);
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
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
© 2016 - 2026 Red Hat, Inc.