powerpc/kexec_file: add missing of_node_put
authorJulia Lawall <Julia.Lawall@inria.fr>
Thu, 7 Sep 2023 09:55:16 +0000 (11:55 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 18 Sep 2023 02:23:26 +0000 (12:23 +1000)
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>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230907095521.14053-7-Julia.Lawall@inria.fr
arch/powerpc/kexec/file_load_64.c

index a3de5369d22c233a91e6204c1029e2c370f39498..09187aca3d1f8b17e1666d8f478f94461bcd574d 100644 (file)
@@ -1138,11 +1138,15 @@ static int update_pci_dma_nodes(void *fdt, const char *dmapropname)
                        continue;
 
                ret = copy_property(fdt, pci_offset, dn, "ibm,dma-window");
-               if (ret < 0)
+               if (ret < 0) {
+                       of_node_put(dn);
                        break;
+               }
                ret = copy_property(fdt, pci_offset, dn, dmapropname);
-               if (ret < 0)
+               if (ret < 0) {
+                       of_node_put(dn);
                        break;
+               }
        }
 
        return ret;