mips/pic32/pic32mzda: Fix refcount leak bugs

of_find_matching_node(), of_find_compatible_node() and
of_find_node_by_path() will return node pointers with refcout
incremented. We should call of_node_put() when they are not
used anymore.

Signed-off-by: Liang He <windhl@126.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
Liang He 2022-06-19 12:54:27 +08:00 committed by Thomas Bogendoerfer
parent 7669559271
commit eb9e9bc4fa
2 changed files with 9 additions and 1 deletions

View File

@ -98,13 +98,18 @@ static int __init pic32_of_prepare_platform_data(struct of_dev_auxdata *lookup)
np = of_find_compatible_node(NULL, NULL, lookup->compatible);
if (np) {
lookup->name = (char *)np->name;
if (lookup->phys_addr)
if (lookup->phys_addr) {
of_node_put(np);
continue;
}
if (!of_address_to_resource(np, 0, &res))
lookup->phys_addr = res.start;
of_node_put(np);
}
}
of_node_put(root);
return 0;
}

View File

@ -32,6 +32,9 @@ static unsigned int pic32_xlate_core_timer_irq(void)
goto default_map;
irq = irq_of_parse_and_map(node, 0);
of_node_put(node);
if (!irq)
goto default_map;