soc: dove: add missing of_node_put
authorJulia Lawall <Julia.Lawall@inria.fr>
Thu, 7 Sep 2023 09:55:17 +0000 (11:55 +0200)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Wed, 20 Sep 2023 09:28:02 +0000 (11:28 +0200)
for_each_available_child_of_node performs an of_node_get
on each iteration, so a break out of the loop requires an
of_node_put.

This was done using the Coccinelle semantic patch
iterators/for_each_child.cocci

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
drivers/soc/dove/pmu.c

index ffc5311..6202dbc 100644 (file)
@@ -410,13 +410,16 @@ int __init dove_init_pmu(void)
                struct pmu_domain *domain;
 
                domain = kzalloc(sizeof(*domain), GFP_KERNEL);
-               if (!domain)
+               if (!domain) {
+                       of_node_put(np);
                        break;
+               }
 
                domain->pmu = pmu;
                domain->base.name = kasprintf(GFP_KERNEL, "%pOFn", np);
                if (!domain->base.name) {
                        kfree(domain);
+                       of_node_put(np);
                        break;
                }