2013-05-11 02:17:07

by majianpeng

[permalink] [raw]
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


Attachments:
0001-module-Add-section-.ref.data-to-kmemleak-area.patch (1.10 kB)

2013-05-13 02:58:13

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.

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

2013-05-13 16:42:45

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.

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]>

2013-05-14 21:34:54

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.

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

2013-05-15 05:21:02

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] module: Add section ".ref.data" into kmemleak-scan-area.

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,