Also save r1 in ftrace_caller() r1 is needed during unwinding when the function_graph tracer is active.
Reported-by: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com> Fixes: 830213786c49 ("powerpc/ftrace: directly call of function graph tracer by ftrace caller") Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu> --- arch/powerpc/kernel/trace/ftrace_mprofile.S | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/powerpc/kernel/trace/ftrace_mprofile.S b/arch/powerpc/kernel/trace/ftrace_mprofile.S index 56da60e98327..8443902d5a05 100644 --- a/arch/powerpc/kernel/trace/ftrace_mprofile.S +++ b/arch/powerpc/kernel/trace/ftrace_mprofile.S @@ -173,6 +173,10 @@ _GLOBAL(ftrace_caller) beq ftrace_no_trace #endif + /* Save previous stack pointer (r1) */ + addi r8, r1, SWITCH_FRAME_SIZE + PPC_STL r8, GPR1(r1) + /* Get the _mcount() call site out of LR */ mflr r7 PPC_STL r7, _NIP(r1) -- 2.34.1