The following changes since commit d4551c189d6e6a3fcf7f625bd4b273e770fad35a: Merge tag 'iio-for-6.9a' of http://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next (2024-02-25 14:11:41 +0100) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git tags/iio-for-6.9c for you to fetch changes up to 64e19caa5564ecc43edaa7fb818d53de650d9b34: iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped() (2024-02-28 19:15:43 +0000) ---------------------------------------------------------------- IIO: 3rd set for 6.9 - cleanup.h related. I have separated this set out from the more normal patches as they can go separately and that may simplify the merge window. Greg, up to you how you wish to handle this in the char-misc tree. Introduces __free() based handling for fwnode_handle_put() to allow scope based release of these handles on early exit from functions. Also introduced device_for_each_child_node_scoped() to provide a a convenient way to process child nodes without the need to explicitly handle the fwnode_handle_put() needed on early exits from the loop. Typically these early exits are a result of error handling or completion of a search and have proven very prone to being missed. One instance of such a leaked resource was found during these conversions though review of that patch was too late for this pull request. A number of drivers are also converted over to generic fwnode handling from the device tree specific version. ---------------------------------------------------------------- Jonathan Cameron (16): device property: Move fwnode_handle_put() into property.h device property: Add cleanup.h based fwnode_handle_put() scope based cleanup. device property: Introduce device_for_each_child_node_scoped() iio: adc: max11410: Use device_for_each_child_node_scoped() iio: addac: ad74413r: Use device_for_each_child_node_scoped() iio: dac: ltc2688: Use device_for_each_child_node_scoped() iio: adc: fsl-imx25-gcq: Switch from of specific handing to fwnode based. iio: adc: fsl-imx25-gcq: Use devm_* and dev_err_probe() to simplify probe iio: adc: ad7124: Switch from of specific to fwnode based property handling iio: adc: ad7292: Switch from of specific to fwnode property handling iio: adc: ad7192: Convert from of specific to fwnode property handling iio: accel: mma8452: Switch from of specific to fwnode property handling. iio: accel: fxls8962af: Switch from of specific to fwnode based properties. iio: adc: hx711: Switch from of specific to fwnode property handling. iio: temp: ltc2983: Use __free(fwnode_handle) and device_for_each_node_scoped() iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped() drivers/base/property.c | 14 ---- drivers/iio/accel/fxls8962af-core.c | 10 +-- drivers/iio/accel/mma8452.c | 6 +- drivers/iio/adc/ad7124.c | 55 ++++++-------- drivers/iio/adc/ad7192.c | 38 +++++----- drivers/iio/adc/ad7292.c | 13 ++-- drivers/iio/adc/fsl-imx25-gcq.c | 140 +++++++++++++++--------------------- drivers/iio/adc/hx711.c | 5 +- drivers/iio/adc/max11410.c | 27 ++----- drivers/iio/adc/rzg2l_adc.c | 11 +-- drivers/iio/addac/ad74413r.c | 10 +-- drivers/iio/dac/ltc2688.c | 28 +++----- drivers/iio/temperature/ltc2983.c | 137 +++++++++++++---------------------- include/linux/property.h | 22 +++++- 14 files changed, 206 insertions(+), 310 deletions(-)