[PATCH] i3c: master: Simplify with scoped for each OF child loop

Krzysztof Kozlowski posted 1 patch 1 month, 2 weeks ago
drivers/i3c/master.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
[PATCH] i3c: master: Simplify with scoped for each OF child loop
Posted by Krzysztof Kozlowski 1 month, 2 weeks ago
Use scoped for-each loop when iterating over device nodes to make code a
bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 drivers/i3c/master.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 7f606c871648..b789ac390937 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2370,19 +2370,16 @@ static int of_populate_i3c_bus(struct i3c_master_controller *master)
 {
 	struct device *dev = &master->dev;
 	struct device_node *i3cbus_np = dev->of_node;
-	struct device_node *node;
 	int ret;
 	u32 val;
 
 	if (!i3cbus_np)
 		return 0;
 
-	for_each_available_child_of_node(i3cbus_np, node) {
+	for_each_available_child_of_node_scoped(i3cbus_np, node) {
 		ret = of_i3c_master_add_dev(master, node);
-		if (ret) {
-			of_node_put(node);
+		if (ret)
 			return ret;
-		}
 	}
 
 	/*
-- 
2.51.0
Re: [PATCH] i3c: master: Simplify with scoped for each OF child loop
Posted by Alexandre Belloni 3 weeks, 4 days ago
On Wed, 24 Dec 2025 13:45:52 +0100, Krzysztof Kozlowski wrote:
> Use scoped for-each loop when iterating over device nodes to make code a
> bit simpler.
> 
> 

Applied, thanks!

[1/1] i3c: master: Simplify with scoped for each OF child loop
      https://git.kernel.org/i3c/c/ceff3bc1518a

Best regards,

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Re: [PATCH] i3c: master: Simplify with scoped for each OF child loop
Posted by Frank Li 1 month, 1 week ago
On Wed, Dec 24, 2025 at 01:45:52PM +0100, Krzysztof Kozlowski wrote:
> Use scoped for-each loop when iterating over device nodes to make code a
> bit simpler.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

>  drivers/i3c/master.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
> index 7f606c871648..b789ac390937 100644
> --- a/drivers/i3c/master.c
> +++ b/drivers/i3c/master.c
> @@ -2370,19 +2370,16 @@ static int of_populate_i3c_bus(struct i3c_master_controller *master)
>  {
>  	struct device *dev = &master->dev;
>  	struct device_node *i3cbus_np = dev->of_node;
> -	struct device_node *node;
>  	int ret;
>  	u32 val;
>
>  	if (!i3cbus_np)
>  		return 0;
>
> -	for_each_available_child_of_node(i3cbus_np, node) {
> +	for_each_available_child_of_node_scoped(i3cbus_np, node) {
>  		ret = of_i3c_master_add_dev(master, node);
> -		if (ret) {
> -			of_node_put(node);
> +		if (ret)
>  			return ret;
> -		}
>  	}
>
>  	/*
> --
> 2.51.0
>