In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
It will cause kmemleak to misjudge because when loading module it did
not add '.ref.data' into kmemleak-scan-area.
Signed-off-by: Jianpeng Ma <[email protected]>
---
kernel/module.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/module.c b/kernel/module.c
index b049939..dafe2ea 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2434,7 +2434,8 @@ static void kmemleak_load_module(const struct module *mod,
const char *name = info->secstrings + info->sechdrs[i].sh_name;
if (!(info->sechdrs[i].sh_flags & SHF_ALLOC))
continue;
- if (!strstarts(name, ".data") && !strstarts(name, ".bss"))
+ if (!strstarts(name, ".data") && !strstarts(name, ".bss") &&
+ !strstarts(name, ".ref.data"))
continue;
kmemleak_scan_area((void *)info->sechdrs[i].sh_addr,
--
1.7.10.4
majianpeng <[email protected]> writes:
> In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
> It will cause kmemleak to misjudge because when loading module it did
> not add '.ref.data' into kmemleak-scan-area.
>
> Signed-off-by: Jianpeng Ma <[email protected]>
> ---
> kernel/module.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
Catalin?
Acked-by: Rusty Russell <[email protected]>
Cheers,
Rusty.
> diff --git a/kernel/module.c b/kernel/module.c
> index b049939..dafe2ea 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -2434,7 +2434,8 @@ static void kmemleak_load_module(const struct module *mod,
> const char *name = info->secstrings + info->sechdrs[i].sh_name;
> if (!(info->sechdrs[i].sh_flags & SHF_ALLOC))
> continue;
> - if (!strstarts(name, ".data") && !strstarts(name, ".bss"))
> + if (!strstarts(name, ".data") && !strstarts(name, ".bss") &&
> + !strstarts(name, ".ref.data"))
> continue;
>
> kmemleak_scan_area((void *)info->sechdrs[i].sh_addr,
> --
> 1.7.10.4
>
>>From 9adf5b9aae7ceb97828042d0ae8fe9fb688bc691 Mon Sep 17 00:00:00 2001
> From: Jianpeng Ma <[email protected]>
> Date: Sat, 11 May 2013 10:04:14 +0800
> Subject: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.
>
> In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
> It will cause kmemleak to misjudge because when loading module it did
> not add '.ref.data' into kmemleak-scan-area.
>
> Signed-off-by: Jianpeng Ma <[email protected]>
> ---
> kernel/module.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/module.c b/kernel/module.c
> index b049939..dafe2ea 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -2434,7 +2434,8 @@ static void kmemleak_load_module(const struct module *mod,
> const char *name = info->secstrings + info->sechdrs[i].sh_name;
> if (!(info->sechdrs[i].sh_flags & SHF_ALLOC))
> continue;
> - if (!strstarts(name, ".data") && !strstarts(name, ".bss"))
> + if (!strstarts(name, ".data") && !strstarts(name, ".bss") &&
> + !strstarts(name, ".ref.data"))
> continue;
>
> kmemleak_scan_area((void *)info->sechdrs[i].sh_addr,
> --
> 1.7.10.4
On Mon, May 13, 2013 at 03:24:09AM +0100, Rusty Russell wrote:
> majianpeng <[email protected]> writes:
>
> > In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
> > It will cause kmemleak to misjudge because when loading module it did
> > not add '.ref.data' into kmemleak-scan-area.
> >
> > Signed-off-by: Jianpeng Ma <[email protected]>
> > ---
> > kernel/module.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Catalin?
>
> Acked-by: Rusty Russell <[email protected]>
Looks good, thanks for cc'ing me.
Acked-by: Catalin Marinas <[email protected]>
Rusty,
On Mon, May 13, 2013 at 03:24:09AM +0100, Rusty Russell wrote:
> majianpeng <[email protected]> writes:
>
> > In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
> > It will cause kmemleak to misjudge because when loading module it did
> > not add '.ref.data' into kmemleak-scan-area.
> >
> > Signed-off-by: Jianpeng Ma <[email protected]>
> > ---
> > kernel/module.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Catalin?
>
> Acked-by: Rusty Russell <[email protected]>
I forgot to ask - are you picking up this patch or would like me to push
upstream? The patch got some more testing on a separate thread:
Tested-by: Steven Rostedt <[email protected]>
Thanks.
--
Catalin
Catalin Marinas <[email protected]> writes:
> On Mon, May 13, 2013 at 03:24:09AM +0100, Rusty Russell wrote:
>> majianpeng <[email protected]> writes:
>>
>> > In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
>> > It will cause kmemleak to misjudge because when loading module it did
>> > not add '.ref.data' into kmemleak-scan-area.
>> >
>> > Signed-off-by: Jianpeng Ma <[email protected]>
>> > ---
>> > kernel/module.c | 3 ++-
>> > 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> Catalin?
>>
>> Acked-by: Rusty Russell <[email protected]>
>
> Looks good, thanks for cc'ing me.
>
> Acked-by: Catalin Marinas <[email protected]>
I use "Acked-by" to mean "it touches my code so normally it'd go in my
tree, but it's not".
Since you replied the same, I defer to your wishes and put it in my
fixes branch (or Linus will grab it now). I also removed the extra
trailing space ('git am' complained).
Thanks,
Rusty.
From: Jianpeng Ma <[email protected]>
Date: Sat, 11 May 2013 10:04:14 +0800
Subject: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.
In commit 523c81135,it used "__refdata" on event_class_ftrace_##call.
It will cause kmemleak to misjudge because when loading module it did
not add '.ref.data' into kmemleak-scan-area.
Signed-off-by: Jianpeng Ma <[email protected]>
Acked-by: Catalin Marinas <[email protected]>
Tested-by: Steven Rostedt <[email protected]>
Signed-off-by: Rusty Russell <[email protected]>
diff --git a/kernel/module.c b/kernel/module.c
index b049939..e4ee1bf 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2434,7 +2434,8 @@ static void kmemleak_load_module(const struct module *mod,
const char *name = info->secstrings + info->sechdrs[i].sh_name;
if (!(info->sechdrs[i].sh_flags & SHF_ALLOC))
continue;
- if (!strstarts(name, ".data") && !strstarts(name, ".bss"))
+ if (!strstarts(name, ".data") && !strstarts(name, ".bss") &&
+ !strstarts(name, ".ref.data"))
continue;
kmemleak_scan_area((void *)info->sechdrs[i].sh_addr,