Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05f22639 authored by Corey Minyard's avatar Corey Minyard Committed by Ralf Baechle
Browse files

MIPS: Ftrace: Fix function tracing return address to match



Dynamic function tracing was not working on MIPS.  When doing dynamic
tracing, the tracer attempts to match up the passed in address with
the one the compiler creates in the mcount tables.  The MIPS code was
passing in the return address from the tracing function call, but the
compiler tables were the address of the function call.  So they
wouldn't match.

Just subtracting 8 from the return address will give the address of
the function call.  Easy enough.

Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
[david.daney@cavium.com: Adjusted code comment and patch Subject.]
Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Patchwork: https://patchwork.linux-mips.org/patch/5592/
parent afddce0c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ _mcount:
	PTR_S	MCOUNT_RA_ADDRESS_REG, PT_R12(sp)
#endif

	move	a0, ra		/* arg1: self return address */
	PTR_SUBU a0, ra, 8	/* arg1: self address */
	.globl ftrace_call
ftrace_call:
	nop	/* a placeholder for the call to a real tracing function */