diff options
author | Christophe Leroy <christophe.leroy@csgroup.eu> | 2021-12-20 16:38:19 +0000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2022-02-07 21:03:11 +1100 |
commit | 7bdb478c1d15cfd3a92db6331cb2d3dd3a8b9436 (patch) | |
tree | 123b94d99f1b51e93297b40ade851db64bcfedc9 | |
parent | 7875bc9b07cde868784195e215f4deaa0fa928a2 (diff) |
powerpc/ftrace: Simplify PPC32's return_to_handler()
return_to_handler() was copied from PPC64. For PPC32 it
just needs to save r3 and r4, and doesn't require any nop
after the bl.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/aab39b77b34fb2c4ed08ed01c547b6ed13643788.1640017960.git.christophe.leroy@csgroup.eu
-rw-r--r-- | arch/powerpc/kernel/trace/ftrace_32.S | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/powerpc/kernel/trace/ftrace_32.S b/arch/powerpc/kernel/trace/ftrace_32.S index 7e2fd729116b..95ffea2bdc29 100644 --- a/arch/powerpc/kernel/trace/ftrace_32.S +++ b/arch/powerpc/kernel/trace/ftrace_32.S @@ -162,22 +162,18 @@ _GLOBAL(ftrace_graph_caller) _GLOBAL(return_to_handler) /* need to save return values */ - stwu r1, -32(r1) - stw r3, 20(r1) - stw r4, 16(r1) - stw r31, 12(r1) - mr r31, r1 + stwu r1, -16(r1) + stw r3, 8(r1) + stw r4, 12(r1) bl ftrace_return_to_handler - nop /* return value has real return address */ mtlr r3 - lwz r3, 20(r1) - lwz r4, 16(r1) - lwz r31,12(r1) - lwz r1, 0(r1) + lwz r3, 8(r1) + lwz r4, 12(r1) + addi r1, r1, 16 /* Jump back to real return address */ blr |