mbox series

[0/4] iio: adc: use scoped device_for_each_childe_node()

Message ID 20240926-iio_device_for_each_child_node_scoped-v1-0-64ca8a424578@gmail.com (mailing list archive)
Headers show
Series iio: adc: use scoped device_for_each_childe_node() | expand

Message

Javier Carrasco Sept. 26, 2024, 4:08 p.m. UTC
The device_for_each_child_node() macro requires calls to
fwnode_handle_put() upon early exits (break/return), and that has been a
constant source of bugs in the kernel.

This series switches to the more secure, scoped version of the macro
in the IIO subsystem, wherever the loop contains error paths. This
change simplifies the code and removes the explicit calls to
fwnode_handle_put(). In all cases the child node is only used for
parsing, and not assigned to be used later.

The straightforward uses of the loop with no error paths have been left
untouched, as their simplicity justifies the non-scoped variant.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
Javier Carrasco (4):
      iio: adc: qcom-pm8xxx-xoadc: use scoped device_for_each_child_node()
      iio: adc: qcom-spmi-vadc: use scoped device_for_each_child_node()
      iio: adc: sun20i-gpadc: use scoped device_for_each_child_node()
      iio: adc: ad5755: use scoped device_for_each_child_node()

 drivers/iio/adc/qcom-pm8xxx-xoadc.c |  8 +++-----
 drivers/iio/adc/qcom-spmi-vadc.c    |  7 ++-----
 drivers/iio/adc/sun20i-gpadc-iio.c  |  7 ++-----
 drivers/iio/dac/ad5755.c            | 11 +++--------
 4 files changed, 10 insertions(+), 23 deletions(-)
---
base-commit: 92fc9636d1471b7f68bfee70c776f7f77e747b97
change-id: 20240926-iio_device_for_each_child_node_scoped-cb534e6f5d9b

Best regards,

Comments

Jonathan Cameron Sept. 28, 2024, 4:29 p.m. UTC | #1
On Thu, 26 Sep 2024 18:08:36 +0200
Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:

> The device_for_each_child_node() macro requires calls to
> fwnode_handle_put() upon early exits (break/return), and that has been a
> constant source of bugs in the kernel.
> 
> This series switches to the more secure, scoped version of the macro
> in the IIO subsystem, wherever the loop contains error paths. This
> change simplifies the code and removes the explicit calls to
> fwnode_handle_put(). In all cases the child node is only used for
> parsing, and not assigned to be used later.
> 
> The straightforward uses of the loop with no error paths have been left
> untouched, as their simplicity justifies the non-scoped variant.
> 
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
All look good to me.

I'll be rebasing on rc1 anyway, so there is plenty of time for any
other reviews to come in.  In meantime I've queued these up on the testing
branch of iio.git.

Thanks,

Jonathan
> ---
> Javier Carrasco (4):
>       iio: adc: qcom-pm8xxx-xoadc: use scoped device_for_each_child_node()
>       iio: adc: qcom-spmi-vadc: use scoped device_for_each_child_node()
>       iio: adc: sun20i-gpadc: use scoped device_for_each_child_node()
>       iio: adc: ad5755: use scoped device_for_each_child_node()
> 
>  drivers/iio/adc/qcom-pm8xxx-xoadc.c |  8 +++-----
>  drivers/iio/adc/qcom-spmi-vadc.c    |  7 ++-----
>  drivers/iio/adc/sun20i-gpadc-iio.c  |  7 ++-----
>  drivers/iio/dac/ad5755.c            | 11 +++--------
>  4 files changed, 10 insertions(+), 23 deletions(-)
> ---
> base-commit: 92fc9636d1471b7f68bfee70c776f7f77e747b97
> change-id: 20240926-iio_device_for_each_child_node_scoped-cb534e6f5d9b
> 
> Best regards,