2022-06-17 03:58:02

by Liang He

[permalink] [raw]
Subject: [PATCH] arm: mach-omap2: omap4-common: Fix refcount leak bug

In omap4_sram_init(), of_find_compatible_node() will return a node
pointer with refcount incremented. We should use of_node_put() when
it is not used anymore.

Signed-off-by: Liang He <[email protected]>
---
arch/arm/mach-omap2/omap4-common.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 6d1eb4eefefe..e981bf57e64f 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -135,6 +135,7 @@ static int __init omap4_sram_init(void)
pr_warn("%s:Unable to allocate sram needed to handle errata I688\n",
__func__);
sram_pool = of_gen_pool_get(np, "sram", 0);
+ of_node_put(np);
if (!sram_pool)
pr_warn("%s:Unable to get sram pool needed to handle errata I688\n",
__func__);
--
2.25.1


2022-06-28 04:59:38

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] arm: mach-omap2: omap4-common: Fix refcount leak bug

* Liang He <[email protected]> [220617 06:51]:
> In omap4_sram_init(), of_find_compatible_node() will return a node
> pointer with refcount incremented. We should use of_node_put() when
> it is not used anymore.
>
> Signed-off-by: Liang He <[email protected]>
> ---
> arch/arm/mach-omap2/omap4-common.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
> index 6d1eb4eefefe..e981bf57e64f 100644
> --- a/arch/arm/mach-omap2/omap4-common.c
> +++ b/arch/arm/mach-omap2/omap4-common.c
> @@ -135,6 +135,7 @@ static int __init omap4_sram_init(void)
> pr_warn("%s:Unable to allocate sram needed to handle errata I688\n",
> __func__);
> sram_pool = of_gen_pool_get(np, "sram", 0);
> + of_node_put(np);
> if (!sram_pool)
> pr_warn("%s:Unable to get sram pool needed to handle errata I688\n",
> __func__);

Here too sram_pool is used aftger of_node_put().

Regards,

Tony

2022-06-28 06:00:59

by Liang He

[permalink] [raw]
Subject: Re:Re: [PATCH] arm: mach-omap2: omap4-common: Fix refcount leak bug




At 2022-06-28 12:38:49, "Tony Lindgren" <[email protected]> wrote:
>* Liang He <[email protected]> [220617 06:51]:
>> In omap4_sram_init(), of_find_compatible_node() will return a node
>> pointer with refcount incremented. We should use of_node_put() when
>> it is not used anymore.
>>
>> Signed-off-by: Liang He <[email protected]>
>> ---
>> arch/arm/mach-omap2/omap4-common.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
>> index 6d1eb4eefefe..e981bf57e64f 100644
>> --- a/arch/arm/mach-omap2/omap4-common.c
>> +++ b/arch/arm/mach-omap2/omap4-common.c
>> @@ -135,6 +135,7 @@ static int __init omap4_sram_init(void)
>> pr_warn("%s:Unable to allocate sram needed to handle errata I688\n",
>> __func__);
>> sram_pool = of_gen_pool_get(np, "sram", 0);
>> + of_node_put(np);
>> if (!sram_pool)
>> pr_warn("%s:Unable to get sram pool needed to handle errata I688\n",
>> __func__);
>
>Here too sram_pool is used aftger of_node_put().
>
>Regards,
>
>Tony

Thanks, Tony.

I will send a new patch to fix the order problem.

Liang