powerpc/powermac: add missing of_node_put
authorJulia Lawall <Julia.Lawall@inria.fr>
Thu, 7 Sep 2023 09:55:13 +0000 (11:55 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 18 Sep 2023 02:23:26 +0000 (12:23 +1000)
for_each_node_by_name 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: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230907095521.14053-4-Julia.Lawall@inria.fr
arch/powerpc/platforms/powermac/low_i2c.c
arch/powerpc/platforms/powermac/smp.c

index 40f3aa432fbacd8c07c7dd716810a97dc45bb16e..c097d591670e827aa03fa014bcc0c2e8eea71c0c 100644 (file)
@@ -925,8 +925,10 @@ static void __init smu_i2c_probe(void)
 
                sz = sizeof(struct pmac_i2c_bus) + sizeof(struct smu_i2c_cmd);
                bus = kzalloc(sz, GFP_KERNEL);
-               if (bus == NULL)
+               if (bus == NULL) {
+                       of_node_put(busnode);
                        return;
+               }
 
                bus->controller = controller;
                bus->busnode = of_node_get(busnode);
index 8be71920e63c36ac6254018007ec38bd611745b5..c83d1e14077e9550bb848090520cd587e7a9b1e3 100644 (file)
@@ -598,8 +598,10 @@ static void __init smp_core99_setup_i2c_hwsync(int ncpus)
                        name = "Pulsar";
                        break;
                }
-               if (pmac_tb_freeze != NULL)
+               if (pmac_tb_freeze != NULL) {
+                       of_node_put(cc);
                        break;
+               }
        }
        if (pmac_tb_freeze != NULL) {
                /* Open i2c bus for synchronous access */