Message ID | 20240926-iio_device_for_each_child_node_scoped-v1-0-64ca8a424578@gmail.com |
---|---|
Headers | show |
Series | iio: adc: use scoped device_for_each_childe_node() | expand |
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,
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,