Re: [PATCH] csky: fix refcount leak in setup_smp()
From: Guo Ren
Date: Thu Dec 27 2018 - 12:03:49 EST
Hi Li,
On Thu, Dec 27, 2018 at 11:27:11AM -0500, Yangtao Li wrote:
> The of_find_node_by_type() returns a node pointer with refcount
> incremented, but there is the lack of use of the of_node_put() when
> done. Add the missing of_node_put() to release the refcount.
>
> Signed-off-by: Yangtao Li <tiny.windzz@xxxxxxxxx>
> ---
> arch/csky/kernel/smp.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/arch/csky/kernel/smp.c b/arch/csky/kernel/smp.c
> index 36ebaf9834e1..adec56df613b 100644
> --- a/arch/csky/kernel/smp.c
> +++ b/arch/csky/kernel/smp.c
> @@ -139,11 +139,17 @@ void __init setup_smp(void)
> int cpu;
>
> while ((node = of_find_node_by_type(node, "cpu"))) {
> - if (!of_device_is_available(node))
> + if (!of_device_is_available(node)) {
> + of_node_put(node);
> continue;
> + }
>
> - if (of_property_read_u32(node, "reg", &cpu))
> + if (of_property_read_u32(node, "reg", &cpu)) {
> + of_node_put(node);
> continue;
> + }
> +
> + of_node_put(node);
If success, of_node_put ?
>
> if (cpu >= NR_CPUS)
Here need a of_node_put()?
> continue;
Can you use for_each_of_cpu_node() for the patch?
Thx
Guo Ren