powerpc/ftrace: Move stack setup and teardown code into ftrace_graph_caller()
authorNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Wed, 19 Apr 2017 12:52:23 +0000 (18:22 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 23 Apr 2017 10:32:24 +0000 (20:32 +1000)
Move the stack setup and teardown code into ftrace_graph_caller(). This way, we
don't incur the cost of setting it up unless function graph is enabled for this
function.

Also, remove the extraneous LR restore code after the function graph stub. LR
has previously been restored and neither livepatch_handler() nor
ftrace_graph_caller() return back here.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
[mpe: Drop bad change to non-mprofile-kernel version of ftrace_graph_caller]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/entry_64.S

index 6432d4b..cb3fb98 100644 (file)
@@ -1313,16 +1313,12 @@ ftrace_call:
 #endif
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
-       stdu    r1, -112(r1)
 .globl ftrace_graph_call
 ftrace_graph_call:
        b       ftrace_graph_stub
 _GLOBAL(ftrace_graph_stub)
-       addi    r1, r1, 112
 #endif
 
-       ld      r0,LRSAVE(r1)   /* restore callee's lr at _mcount site */
-       mtlr    r0
        bctr                    /* jump after _mcount site */
 #endif /* CC_USING_MPROFILE_KERNEL */
 
@@ -1471,6 +1467,7 @@ _GLOBAL(ftrace_graph_caller)
 
 #else /* CC_USING_MPROFILE_KERNEL */
 _GLOBAL(ftrace_graph_caller)
+       stdu    r1, -112(r1)
        /* with -mprofile-kernel, parameter regs are still alive at _mcount */
        std     r10, 104(r1)
        std     r9, 96(r1)