]> git.baikalelectronics.ru Git - kernel.git/commitdiff
powerpc/pasemi: Use of_root in pas_pci_init()
authorMichael Ellerman <mpe@ellerman.id.au>
Mon, 5 Sep 2022 04:56:37 +0000 (14:56 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 6 Sep 2022 01:03:31 +0000 (11:03 +1000)
Currently in pas_pci_init() a reference to the root node is leaked due
to a missing of_node_put(). Instead just use of_root directly.

Note that converting to of_find_compatible_node(NULL, ...) would
not be entirely equivalent, because that would check the compatible
property of the root node, whereas using of_root skips checking the root
node and start the search at the first child of the root.

Reported-by: Liang He <windhl@126.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220906010313.1296714-1-mpe@ellerman.id.au
arch/powerpc/platforms/pasemi/pci.c

index 55f0160910bf487fa94d36231eb728610e6112bc..f27d314147373294b6f476980014275edbdaa32c 100644 (file)
@@ -270,18 +270,12 @@ static int __init pas_add_bridge(struct device_node *dev)
 
 void __init pas_pci_init(void)
 {
-       struct device_node *np, *root;
+       struct device_node *np;
        int res;
 
-       root = of_find_node_by_path("/");
-       if (!root) {
-               pr_crit("pas_pci_init: can't find root of device tree\n");
-               return;
-       }
-
        pci_set_flags(PCI_SCAN_ALL_PCIE_DEVS);
 
-       np = of_find_compatible_node(root, NULL, "pasemi,rootbus");
+       np = of_find_compatible_node(of_root, NULL, "pasemi,rootbus");
        if (np) {
                res = pas_add_bridge(np);
                of_node_put(np);