ARM: hisi: Add missing of_node_put after of_find_compatible_node

of_find_compatible_node  will increment the refcount of the returned
device_node. Calling of_node_put() to avoid the refcount leak

Signed-off-by: Peng Wu <wupeng58@huawei.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
This commit is contained in:
Peng Wu 2022-04-28 10:43:06 +00:00 committed by Wei Xu
parent 3123109284
commit 9bc72e47d4
1 changed files with 4 additions and 0 deletions

View File

@ -67,14 +67,17 @@ static void __init hi3xxx_smp_prepare_cpus(unsigned int max_cpus)
} }
ctrl_base = of_iomap(np, 0); ctrl_base = of_iomap(np, 0);
if (!ctrl_base) { if (!ctrl_base) {
of_node_put(np);
pr_err("failed to map address\n"); pr_err("failed to map address\n");
return; return;
} }
if (of_property_read_u32(np, "smp-offset", &offset) < 0) { if (of_property_read_u32(np, "smp-offset", &offset) < 0) {
of_node_put(np);
pr_err("failed to find smp-offset property\n"); pr_err("failed to find smp-offset property\n");
return; return;
} }
ctrl_base += offset; ctrl_base += offset;
of_node_put(np);
} }
} }
@ -160,6 +163,7 @@ static int hip01_boot_secondary(unsigned int cpu, struct task_struct *idle)
if (WARN_ON(!node)) if (WARN_ON(!node))
return -1; return -1;
ctrl_base = of_iomap(node, 0); ctrl_base = of_iomap(node, 0);
of_node_put(node);
/* set the secondary core boot from DDR */ /* set the secondary core boot from DDR */
remap_reg_value = readl_relaxed(ctrl_base + REG_SC_CTRL); remap_reg_value = readl_relaxed(ctrl_base + REG_SC_CTRL);