ftrace: store mcount address in rec->ip
Record the address of the mcount call-site. Currently all archs except sparc64
record the address of the instruction following the mcount call-site. Some
general cleanups are entailed. Storing mcount addresses in rec->ip enables
looking them up in the kprobe hash table later on to check if they're kprobe'd.
Signed-off-by: Abhishek Sagar <sagar.abhishek@gmail.com>
Cc: davem@davemloft.net
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index fe25e5f..b0f7308 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -51,6 +51,7 @@
#include <asm/page.h>
#include <asm/irqflags.h>
#include <asm/paravirt.h>
+#include <asm/ftrace.h>
.code64
@@ -68,6 +69,7 @@
movq %r9, 48(%rsp)
movq 0x38(%rsp), %rdi
+ subq $MCOUNT_INSN_SIZE, %rdi
.globl mcount_call
mcount_call:
@@ -99,6 +101,7 @@
movq 0x38(%rsp), %rdi
movq 8(%rbp), %rsi
+ subq $MCOUNT_INSN_SIZE, %rdi
.globl ftrace_call
ftrace_call:
@@ -139,6 +142,7 @@
movq 0x38(%rsp), %rdi
movq 8(%rbp), %rsi
+ subq $MCOUNT_INSN_SIZE, %rdi
call *ftrace_trace_function