diff options
author | Shaohua Li <shaohua.li@intel.com> | 2009-01-09 11:29:42 +0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-14 12:11:18 +0100 |
commit | f00012074b1a1a67d9c8603617bbbab267347ca6 (patch) | |
tree | 7a5ec4d30a513914277ccaa607ff88ecf294f84a | |
parent | 25aac9dc7c8c73798c1be8aa36141f980d32579e (diff) | |
download | op-kernel-dev-f00012074b1a1a67d9c8603617bbbab267347ca6.zip op-kernel-dev-f00012074b1a1a67d9c8603617bbbab267347ca6.tar.gz |
ftrace, ia64: Add macro for ftrace_caller
Define FTRACE_ADDR. In IA64, a function pointer isn't a 'unsigned long' but a
'struct {unsigned long ip, unsigned long gp}'.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | include/linux/ftrace.h | 4 | ||||
-rw-r--r-- | kernel/trace/ftrace.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 677432b..0547214 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -126,6 +126,10 @@ extern int ftrace_update_ftrace_func(ftrace_func_t func); extern void ftrace_caller(void); extern void ftrace_call(void); extern void mcount_call(void); + +#ifndef FTRACE_ADDR +#define FTRACE_ADDR ((unsigned long)ftrace_caller) +#endif #ifdef CONFIG_FUNCTION_GRAPH_TRACER extern void ftrace_graph_caller(void); extern int ftrace_enable_ftrace_graph_caller(void); diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 76bb884..9f53610 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -455,7 +455,7 @@ __ftrace_replace_code(struct dyn_ftrace *rec, int enable) unsigned long ip, fl; unsigned long ftrace_addr; - ftrace_addr = (unsigned long)ftrace_caller; + ftrace_addr = (unsigned long)FTRACE_ADDR; ip = rec->ip; |