diff mbox series

mm/kmemleak: Fix percpu memory leak detection failure

Message ID 20241227092311.3572500-1-guoweikang.kernel@gmail.com (mailing list archive)
State New
Headers show
Series mm/kmemleak: Fix percpu memory leak detection failure | expand

Commit Message

Guo Weikang Dec. 27, 2024, 9:23 a.m. UTC
kmemleak_alloc_percpu gives an incorrect min_count parameter, causing
percpu memory to be considered a gray object.

Fixes: 8c8685928910 ("mm/kmemleak: use IS_ERR_PCPU() for pointer in the percpu address space")

Signed-off-by: Guo Weikang <guoweikang.kernel@gmail.com>
---
 mm/kmemleak.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Uros Bizjak Dec. 27, 2024, 10:37 a.m. UTC | #1
On Fri, Dec 27, 2024 at 10:23 AM Guo Weikang
<guoweikang.kernel@gmail.com> wrote:
>
> kmemleak_alloc_percpu gives an incorrect min_count parameter, causing
> percpu memory to be considered a gray object.
>
> Fixes: 8c8685928910 ("mm/kmemleak: use IS_ERR_PCPU() for pointer in the percpu address space")
>
> Signed-off-by: Guo Weikang <guoweikang.kernel@gmail.com>

I don't know how 1 turned to 0, the change was definitely unintended.

Acked-by: Uros Bizjak <ubizjak@gmail.com>

Thanks,
Uros.

> ---
>  mm/kmemleak.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index 238ab733fbea..982bb5ef3233 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -1093,7 +1093,7 @@ void __ref kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
>         pr_debug("%s(0x%px, %zu)\n", __func__, ptr, size);
>
>         if (kmemleak_enabled && ptr && !IS_ERR_PCPU(ptr))
> -               create_object_percpu((__force unsigned long)ptr, size, 0, gfp);
> +               create_object_percpu((__force unsigned long)ptr, size, 1, gfp);
>  }
>  EXPORT_SYMBOL_GPL(kmemleak_alloc_percpu);
>
> --
> 2.25.1
>
Uros Bizjak Dec. 27, 2024, 10:42 a.m. UTC | #2
On Fri, Dec 27, 2024 at 11:37 AM Uros Bizjak <ubizjak@gmail.com> wrote:
>
> On Fri, Dec 27, 2024 at 10:23 AM Guo Weikang
> <guoweikang.kernel@gmail.com> wrote:
> >
> > kmemleak_alloc_percpu gives an incorrect min_count parameter, causing
> > percpu memory to be considered a gray object.
> >
> > Fixes: 8c8685928910 ("mm/kmemleak: use IS_ERR_PCPU() for pointer in the percpu address space")
> >
> > Signed-off-by: Guo Weikang <guoweikang.kernel@gmail.com>
>
> I don't know how 1 turned to 0, the change was definitely unintended.

Looking at the original patch at [1], it looks like a mismerge to me.

[1] https://lore.kernel.org/all/20240818210235.33481-2-ubizjak@gmail.com/T/#u

Uros.
diff mbox series

Patch

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 238ab733fbea..982bb5ef3233 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1093,7 +1093,7 @@  void __ref kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
 	pr_debug("%s(0x%px, %zu)\n", __func__, ptr, size);
 
 	if (kmemleak_enabled && ptr && !IS_ERR_PCPU(ptr))
-		create_object_percpu((__force unsigned long)ptr, size, 0, gfp);
+		create_object_percpu((__force unsigned long)ptr, size, 1, gfp);
 }
 EXPORT_SYMBOL_GPL(kmemleak_alloc_percpu);