Commit c28c2d4a authored by Michael Ellerman's avatar Michael Ellerman

powerpc/pasemi: Use of_root in pas_pci_init()

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: default avatarLiang He <windhl@126.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220906010313.1296714-1-mpe@ellerman.id.au
parent 24568549
...@@ -270,18 +270,12 @@ static int __init pas_add_bridge(struct device_node *dev) ...@@ -270,18 +270,12 @@ static int __init pas_add_bridge(struct device_node *dev)
void __init pas_pci_init(void) void __init pas_pci_init(void)
{ {
struct device_node *np, *root; struct device_node *np;
int res; 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); 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) { if (np) {
res = pas_add_bridge(np); res = pas_add_bridge(np);
of_node_put(np); of_node_put(np);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment