Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fd377b3 authored by Julia Lawall's avatar Julia Lawall Committed by Simon Horman
Browse files

ARM: shmobile: R-Mobile: add missing of_node_put

for_each_child_of_node performs an of_node_get on each iteration, so
a break out of the loop requires an of_node_put.

The semantic patch that fixes this problem is as follows
(http://coccinelle.lip6.fr

):

// <smpl>
@@
expression root,e;
local idexpression child;
@@

 for_each_child_of_node(root, child) {
   ... when != of_node_put(child)
       when != e = child
(
   return child;
|
+  of_node_put(child);
?  return ...;
)
   ...
 }
// </smpl>

Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent e5cf79d9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -342,8 +342,10 @@ static int __init rmobile_add_pm_domains(void __iomem *base,
		}

		pd = kzalloc(sizeof(*pd), GFP_KERNEL);
		if (!pd)
		if (!pd) {
			of_node_put(np);
			return -ENOMEM;
		}

		pd->genpd.name = np->name;
		pd->base = base;