Messages in this thread Patch in this message | | | Date | Tue, 07 Jun 2011 13:07:42 -0400 | From | Steven Rostedt <> | Subject | [PATCH 2/3] kprobes/trace: Fix kprobe selftest for gcc 4.6 |
| |
From: Steven Rostedt <srostedt@redhat.com>
With gcc 4.6, the self test kprobe function:
kprobe_trace_selftest_target()
is optimized such that kallsyms does not list it. The kprobes test uses this function to insert a probe and test it. But it will fail the test if the function is not listed in kallsyms.
Because the name is rather unique, converting it from static to global should not be a problem. This prevents gcc from removing it from kallsyms.
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> --- kernel/trace/trace_kprobe.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index f925c45..2c14378 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -1870,8 +1870,12 @@ fs_initcall(init_kprobe_trace); #ifdef CONFIG_FTRACE_STARTUP_TEST -static int kprobe_trace_selftest_target(int a1, int a2, int a3, - int a4, int a5, int a6) +/* + * Can't be static, otherwise gcc might optimize this to + * not be in the kallsyms table. + */ +int kprobe_trace_selftest_target(int a1, int a2, int a3, + int a4, int a5, int a6) { return a1 + a2 + a3 + a4 + a5 + a6; } -- 1.7.4.4
| |