diff mbox series

of: base: remove unnecessary for loop

Message ID 20210701140328epcms1p85149318b6c18fa18b3c7c8e966c14db0@epcms1p8
State Accepted
Commit ace1c4b5c412d21b41329c723acce248a503bad4
Headers show
Series of: base: remove unnecessary for loop | expand

Commit Message

권오훈 July 1, 2021, 2:03 p.m. UTC
In __of_get_next_child function, loop iteration for getting next node is
unnecessary.

for loop is already checking if next is NULL or not, and
of_node_get(next) always returns next itself.

Therefore checking return value in the if clause always evaluates to
true, and thus it always breaks out from for loop in the first iteration.

Remove the unnecessary for loop for readability.

I tested the code as below, and it showed that BUG was never called.

-       for (; next; next = next->sibling)
+       for (; next; next = next->sibling) {
                if (of_node_get(next))
                        break;
+               BUG();
+       }

Signed-off-by: Ohhoon Kwon <ohoono.kwon@samsung.com>
---
 drivers/of/base.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Rob Herring July 14, 2021, 10:30 p.m. UTC | #1
On Thu, 01 Jul 2021 23:03:28 +0900, 권오훈 wrote:
> In __of_get_next_child function, loop iteration for getting next node is

> unnecessary.

> 

> for loop is already checking if next is NULL or not, and

> of_node_get(next) always returns next itself.

> 

> Therefore checking return value in the if clause always evaluates to

> true, and thus it always breaks out from for loop in the first iteration.

> 

> Remove the unnecessary for loop for readability.

> 

> I tested the code as below, and it showed that BUG was never called.

> 

> -       for (; next; next = next->sibling)

> +       for (; next; next = next->sibling) {

>                 if (of_node_get(next))

>                         break;

> +               BUG();

> +       }

> 

> Signed-off-by: Ohhoon Kwon <ohoono.kwon@samsung.com>

> ---

>  drivers/of/base.c | 4 +---

>  1 file changed, 1 insertion(+), 3 deletions(-)

> 


Applied, thanks!
diff mbox series

Patch

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 48e941f99558..ca60988ef428 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -708,9 +708,7 @@  static struct device_node *__of_get_next_child(const struct device_node *node,
 		return NULL;
 
 	next = prev ? prev->sibling : node->child;
-	for (; next; next = next->sibling)
-		if (of_node_get(next))
-			break;
+	of_node_get(next);
 	of_node_put(prev);
 	return next;
 }