Each iteration of for_each_child_of_node puts the previous node, but
in the case of a return from the middle of the loop, there is no put,
thus causing a memory leak. Add an of_node_put before the return.
Issue found with Coccinelle.
Signed-off-by: Nishka Dasgupta <[email protected]>
---
drivers/crypto/nx/nx-842-powernv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/crypto/nx/nx-842-powernv.c b/drivers/crypto/nx/nx-842-powernv.c
index e78ff5c65ed6..c037a2403b82 100644
--- a/drivers/crypto/nx/nx-842-powernv.c
+++ b/drivers/crypto/nx/nx-842-powernv.c
@@ -1020,6 +1020,7 @@ static __init int nx842_powernv_init(void)
ret = nx842_powernv_probe_vas(dn);
if (ret) {
nx842_delete_coprocs();
+ of_node_put(dn);
return ret;
}
}
--
2.19.1
Nishka Dasgupta <[email protected]> writes:
> Each iteration of for_each_child_of_node puts the previous node, but
This is for_each_compatible_node.
otherwise looks okay,
Acked-by: Stewart Smith <[email protected]>
--
Stewart Smith
OPAL Architect, IBM.