aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-11-12 22:49:23 +0100
committerIngo Molnar <mingo@elte.hu>2008-11-12 23:15:43 +0100
commit1dc1c6adf38bc5799d1594681645ced40ced4b6b (patch)
tree5b08e2143631239ef1663bf2e1c1c18bcaabb5f3
parent62d59d17a5f98edb48b171742dfa531488802f07 (diff)
tracing/function-return-tracer: call prepare_ftrace_return by registers
Impact: Optimize a bit the function return tracer This patch changes the calling convention of prepare_ftrace_return to pass its arguments by register. This will optimize it a bit and prepare it to support dynamic tracing. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/entry_32.S5
-rw-r--r--arch/x86/kernel/ftrace.c1
2 files changed, 1 insertions, 5 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 9a0ac85946db..f97621149839 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1217,12 +1217,9 @@ trace_return:
pushl %eax
pushl %ecx
pushl %edx
- movl 0xc(%esp), %eax
- pushl %eax
+ movl 0xc(%esp), %edx
lea 0x4(%ebp), %eax
- pushl %eax
call prepare_ftrace_return
- addl $8, %esp
popl %edx
popl %ecx
popl %eax
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 1db0e121a3e7..fe832738e1e2 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -95,7 +95,6 @@ unsigned long ftrace_return_to_handler(void)
* Hook the return address and push it in the stack of return addrs
* in current thread info.
*/
-asmlinkage
void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
{
unsigned long old;