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@xxxxxxxxx> --- 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, -- Javier Carrasco <javier.carrasco.cruz@xxxxxxxxx>