diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2016-04-20 10:23:31 +0900 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2016-04-20 10:35:15 +0100 |
commit | 2fee7d5b08b6419bb59de9e875d895e3a6e7bf5a (patch) | |
tree | 8dc5220b52edeb59816fa9ef0c1abff4ce3b9a36 /arch | |
parent | adb4907007445ab9d392f4ce398cd7fa5d26612b (diff) |
arm64: spin-table: add missing of_node_put()
Since of_get_cpu_node() increments refcount, the node should be put.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm64/kernel/smp_spin_table.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm64/kernel/smp_spin_table.c b/arch/arm64/kernel/smp_spin_table.c index aef3605a8c47..18a71bcd26ee 100644 --- a/arch/arm64/kernel/smp_spin_table.c +++ b/arch/arm64/kernel/smp_spin_table.c @@ -52,6 +52,7 @@ static void write_pen_release(u64 val) static int smp_spin_table_cpu_init(unsigned int cpu) { struct device_node *dn; + int ret; dn = of_get_cpu_node(cpu, NULL); if (!dn) @@ -60,15 +61,15 @@ static int smp_spin_table_cpu_init(unsigned int cpu) /* * Determine the address from which the CPU is polling. */ - if (of_property_read_u64(dn, "cpu-release-addr", - &cpu_release_addr[cpu])) { + ret = of_property_read_u64(dn, "cpu-release-addr", + &cpu_release_addr[cpu]); + if (ret) pr_err("CPU %d: missing or invalid cpu-release-addr property\n", cpu); - return -1; - } + of_node_put(dn); - return 0; + return ret; } static int smp_spin_table_cpu_prepare(unsigned int cpu) |