From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Changes since RFC: Thanks to Rob Herring for reviewing. - Patch description typo fixes - Add some info on the coccinelle script to patch 1. Primarily stating that we don't seem to cause false positives with this change and that any scripting to find cases to update like this can wait for now. - Note the if (_T) is left in place as general consensus from similar discussions on other cleanup.h use cases is that it can be helpful to let the compiler optimize out the call, even when the call would be safe with a NULL value. Recent addition of scope based cleanup (linux/cleanup.h) allows us to avoid a large number of places where error handlers and early returns have to carefully deal with left over resources. The need to call of_node_put() on breaking out of loops over child nodes is one of these cases and this series is to address that. A similar series has been posted for property.h equivalent case. https://lore.kernel.org/linux-iio/20240101172611.694830-1-jic23@xxxxxxxxxx/ (will be updates shortly). If everyone is happy with this series, I'd propose an immutable branch (either in iio.git or somewhere else) so that we can pull the first 2 patches into other trees without having to wait a whole cycle to start making more use of this. Jonathan Cameron (4): of: Add cleanup.h based auto release via __free(device_node) markings. of: unittest: Use __free(device_node) iio: adc: fsl-imx25-gcq: Use __free(device_node) iio: adc: rcar-gyroadc: use __free(device_node) drivers/iio/adc/fsl-imx25-gcq.c | 12 +++--------- drivers/iio/adc/rcar-gyroadc.c | 20 ++++++-------------- drivers/of/unittest.c | 10 +++------- include/linux/of.h | 2 ++ 4 files changed, 14 insertions(+), 30 deletions(-) -- 2.43.0