2021-10-21 12:20:27

by Jiabing Wan

[permalink] [raw]
Subject: [PATCH v2] iio: adc: stm32-adc: Fix of_node_put() issue in stm32-adc

Fix following coccicheck warning:
./drivers/iio/adc/stm32-adc.c:2014:1-33: WARNING: Function
for_each_available_child_of_node should have of_node_put() before return.

Early exits from for_each_available_child_of_node should decrement the
node reference counter. Repalce return by goto here.

Reviewed-by: Fabrice Gasnier <[email protected]>
Signed-off-by: Wan Jiabing <[email protected]>
---
Changelog:
v2:
- Fix typo and add reviewed-by.
---
drivers/iio/adc/stm32-adc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c
index 6245434f8377..7f1fb36c747c 100644
--- a/drivers/iio/adc/stm32-adc.c
+++ b/drivers/iio/adc/stm32-adc.c
@@ -2024,7 +2024,8 @@ static int stm32_adc_generic_chan_init(struct iio_dev *indio_dev,
if (strlen(name) >= STM32_ADC_CH_SZ) {
dev_err(&indio_dev->dev, "Label %s exceeds %d characters\n",
name, STM32_ADC_CH_SZ);
- return -EINVAL;
+ ret = -EINVAL;
+ goto err;
}
strncpy(adc->chan_name[val], name, STM32_ADC_CH_SZ);
ret = stm32_adc_populate_int_ch(indio_dev, name, val);
--
2.20.1


2021-10-28 14:23:17

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2] iio: adc: stm32-adc: Fix of_node_put() issue in stm32-adc

On Thu, 21 Oct 2021 08:18:23 -0400
Wan Jiabing <[email protected]> wrote:

> Fix following coccicheck warning:
> ./drivers/iio/adc/stm32-adc.c:2014:1-33: WARNING: Function
> for_each_available_child_of_node should have of_node_put() before return.
>
> Early exits from for_each_available_child_of_node should decrement the
> node reference counter. Repalce return by goto here.

Replace


>
> Reviewed-by: Fabrice Gasnier <[email protected]>
> Signed-off-by: Wan Jiabing <[email protected]>

We could treat this as a fix, but I'm feeling lazy and it's a minor that
should be harmless. So applied to the togreg branch of iio.git and pushed
out as testing for 0-day to see if it can find anything we missed.

Thanks,

Jonathan


> ---
> Changelog:
> v2:
> - Fix typo and add reviewed-by.
> ---
> drivers/iio/adc/stm32-adc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c
> index 6245434f8377..7f1fb36c747c 100644
> --- a/drivers/iio/adc/stm32-adc.c
> +++ b/drivers/iio/adc/stm32-adc.c
> @@ -2024,7 +2024,8 @@ static int stm32_adc_generic_chan_init(struct iio_dev *indio_dev,
> if (strlen(name) >= STM32_ADC_CH_SZ) {
> dev_err(&indio_dev->dev, "Label %s exceeds %d characters\n",
> name, STM32_ADC_CH_SZ);
> - return -EINVAL;
> + ret = -EINVAL;
> + goto err;
> }
> strncpy(adc->chan_name[val], name, STM32_ADC_CH_SZ);
> ret = stm32_adc_populate_int_ch(indio_dev, name, val);