Commit abe511ac authored by Jisheng Zhang's avatar Jisheng Zhang Committed by Jason Cooper

ARM: mvebu: add missing of_node_put() to fix reference leak

Add of_node_put to properly decrement the refcount when we are
done using a given node.
Signed-off-by: default avatarJisheng Zhang <jszhang@marvell.com>
Reviewed-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>

Conflicts:
	arch/arm/mach-mvebu/armada-370-xp.c
	arch/arm/mach-mvebu/platsmp.c
parent 272b98c6
...@@ -140,6 +140,7 @@ int __init coherency_init(void) ...@@ -140,6 +140,7 @@ int __init coherency_init(void)
coherency_base = of_iomap(np, 0); coherency_base = of_iomap(np, 0);
coherency_cpu_base = of_iomap(np, 1); coherency_cpu_base = of_iomap(np, 1);
set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0); set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0);
of_node_put(np);
} }
return 0; return 0;
...@@ -147,9 +148,14 @@ int __init coherency_init(void) ...@@ -147,9 +148,14 @@ int __init coherency_init(void)
static int __init coherency_late_init(void) static int __init coherency_late_init(void)
{ {
if (of_find_matching_node(NULL, of_coherency_table)) struct device_node *np;
np = of_find_matching_node(NULL, of_coherency_table);
if (np) {
bus_register_notifier(&platform_bus_type, bus_register_notifier(&platform_bus_type,
&mvebu_hwcc_platform_nb); &mvebu_hwcc_platform_nb);
of_node_put(np);
}
return 0; return 0;
} }
......
...@@ -67,6 +67,7 @@ int __init armada_370_xp_pmsu_init(void) ...@@ -67,6 +67,7 @@ int __init armada_370_xp_pmsu_init(void)
pr_info("Initializing Power Management Service Unit\n"); pr_info("Initializing Power Management Service Unit\n");
pmsu_mp_base = of_iomap(np, 0); pmsu_mp_base = of_iomap(np, 0);
pmsu_reset_base = of_iomap(np, 1); pmsu_reset_base = of_iomap(np, 1);
of_node_put(np);
} }
return 0; return 0;
......
...@@ -98,6 +98,7 @@ static int __init mvebu_system_controller_init(void) ...@@ -98,6 +98,7 @@ static int __init mvebu_system_controller_init(void)
BUG_ON(!match); BUG_ON(!match);
system_controller_base = of_iomap(np, 0); system_controller_base = of_iomap(np, 0);
mvebu_sc = (struct mvebu_system_controller *)match->data; mvebu_sc = (struct mvebu_system_controller *)match->data;
of_node_put(np);
} }
return 0; return 0;
......
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