]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
device property: Add scoped fwnode child node iterators
authorJean-François Lessard <jefflessard3@gmail.com>
Tue, 2 Sep 2025 19:04:39 +0000 (15:04 -0400)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 10 Sep 2025 12:48:03 +0000 (14:48 +0200)
commit448097bbd3836d2ee46fa6eabd18661e9a3c8be8
tree890fd3a6e94120341d25793b66a4933f509c8045
parent8f5ae30d69d7543eee0d70083daf4de8fe15d585
device property: Add scoped fwnode child node iterators

Add scoped versions of fwnode child node iterators that automatically
handle reference counting cleanup using the __free() attribute:

- fwnode_for_each_child_node_scoped()
- fwnode_for_each_available_child_node_scoped()

These macros follow the same pattern as existing scoped iterators in the
kernel, ensuring fwnode references are automatically released when the
iterator variable goes out of scope. This prevents resource leaks and
eliminates the need for manual cleanup in error paths.

The implementation mirrors the non-scoped variants but uses
__free(fwnode_handle) for automatic resource management, providing a
safer and more convenient interface for drivers iterating over firmware
node children.

Signed-off-by: Jean-François Lessard <jefflessard3@gmail.com>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
include/linux/property.h