According to Documentation/trace/ftrace-design.txt, the selfpc should be the return address minus the mcount overhead (8 bytes). This brings static trace in line with the dynamic trace regarding the selfpc argument to the tracing function. This also removes the magic number '8' with the proper MCOUNT_INSN_SIZE. Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> Cc: linux-kernel@xxxxxxxxxxxxxxx Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx> --- arch/mips/kernel/mcount.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S index 2f7c734771f4..3af48b7c7a47 100644 --- a/arch/mips/kernel/mcount.S +++ b/arch/mips/kernel/mcount.S @@ -79,7 +79,7 @@ _mcount: PTR_S MCOUNT_RA_ADDRESS_REG, PT_R12(sp) #endif - PTR_SUBU a0, ra, 8 /* arg1: self address */ + PTR_SUBU a0, ra, MCOUNT_INSN_SIZE /* arg1: self address */ PTR_LA t1, _stext sltu t2, a0, t1 /* t2 = (a0 < _stext) */ PTR_LA t1, _etext @@ -138,7 +138,7 @@ NESTED(_mcount, PT_SIZE, ra) static_trace: MCOUNT_SAVE_REGS - move a0, ra /* arg1: self return address */ + PTR_SUBU a0, ra, MCOUNT_INSN_SIZE /* arg1: self address */ jalr t2 /* (1) call *ftrace_trace_function */ move a1, AT /* arg2: parent's return address */ -- 2.1.0