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

From: Rusty Russell
Date: Wed May 15 2013 - 01:21:36 EST


Catalin Marinas <catalin.marinas@xxxxxxx> writes:
> On Mon, May 13, 2013 at 03:24:09AM +0100, Rusty Russell wrote:
>> majianpeng <majianpeng@xxxxxxxxx> 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 <majianpeng@xxxxxxxxx>
>> > ---
>> > kernel/module.c | 3 ++-
>> > 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> Catalin?
>>
>> Acked-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
>
> Looks good, thanks for cc'ing me.
>
> Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>

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 <majianpeng@xxxxxxxxx>
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 <majianpeng@xxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Tested-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

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,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/