pmdomain: ti: add missing of_node_put
authorJulia Lawall <Julia.Lawall@inria.fr>
Thu, 7 Sep 2023 09:55:14 +0000 (11:55 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 17 Oct 2023 09:42:29 +0000 (11:42 +0200)
for_each_node_with_property 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>
Link: https://lore.kernel.org/r/20230907095521.14053-5-Julia.Lawall@inria.fr
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/ti/ti_sci_pm_domains.c

index 34645104fe45d333e0394602b313400ae435d597..c091d569ecd5f3d05d84a261f1756f549ddb37e2 100644 (file)
@@ -153,14 +153,18 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
                                        max_id = args.args[0];
 
                                pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
-                               if (!pd)
+                               if (!pd) {
+                                       of_node_put(np);
                                        return -ENOMEM;
+                               }
 
                                pd->pd.name = devm_kasprintf(dev, GFP_KERNEL,
                                                             "pd:%d",
                                                             args.args[0]);
-                               if (!pd->pd.name)
+                               if (!pd->pd.name) {
+                                       of_node_put(np);
                                        return -ENOMEM;
+                               }
 
                                pd->pd.power_off = ti_sci_pd_power_off;
                                pd->pd.power_on = ti_sci_pd_power_on;