pinctrl: imx1-core: add missing of_node_put
Subsystems (4)
PATCH 1/1 pinctrl: imx1-core: add missing of_node_put
for_each_child_of_node performs an of_node_get on each iteration, so of_node_put is required on break out of the loop.
This is done using Coccinelle. And semantic patch used for this is as follows:
@@
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 ...;
)
...
}
--- drivers/pinctrl/freescale/pinctrl-imx1-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
drivers/pinctrl/freescale/pinctrl-imx1-core.c +6 -2
@@ -538,8 +538,10 @@ static int imx1_pinctrl_parse_functions(struct device_node *np, func->groups[i] = child->name; grp = &info->groups[grp_index++]; ret =imx1_pinctrl_parse_groups (child, grp, info, i++); -if (ret == -ENOMEM ) +if (ret == -ENOMEM ) { +of_node_put (child);return ret; + } }return 0 ;
@@ -582,8 +584,10 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,for_each_child_of_node (np, child) { ret =imx1_pinctrl_parse_functions (child, info, ifunc++); -if (ret == -ENOMEM ) +if (ret == -ENOMEM ) { +of_node_put (child);return -ENOMEM ; + } }return 0 ;
Signature · 1 line
1.9.1
Quoted 23 lines · Vaishali Thakkar
for_each_child_of_nodeperforms anof_node_geton each iteration, soof_node_putis required on break out of the loop.This is done using Coccinelle. And semantic patch used for this is as follows:
@@
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 ...;
)
...
}
Quoted 1 line
Signed-off-by Vaishali Thakkar <[email protected]>
Patch applied for fixes, thanks!
Yours,
Linus Walleij