aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaveen N Rao <naveen@kernel.org>2023-12-15 16:44:33 +0530
committersanglipeng <sanglipeng1@jd.com>2024-04-26 10:24:14 +0800
commit9d8420a5e3b15d94ba737d0550f2412a7e77651e (patch)
tree02b201e407eb1d88be1403924787dac354866acd
parentc390e010cb119c86748592defc560724aacffbb9 (diff)
downloadopenEuler-kernel-9d8420a5e3b15d94ba737d0550f2412a7e77651e.tar.gz
powerpc/ftrace: Fix stack teardown in ftrace_no_trace
stable inclusion from stable-v5.10.205 commit 05c547e8427af1a7b2919a38a54c673e697cd44f category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I9JPUP Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=05c547e8427af1a7b2919a38a54c673e697cd44f -------------------------------- commit 4b3338aaa74d7d4ec5b6734dc298f0db94ec83d2 upstream. Commit 41a506ef71eb ("powerpc/ftrace: Create a dummy stackframe to fix stack unwind") added use of a new stack frame on ftrace entry to fix stack unwind. However, the commit missed updating the offset used while tearing down the ftrace stack when ftrace is disabled. Fix the same. In addition, the commit missed saving the correct stack pointer in pt_regs. Update the same. Fixes: 41a506ef71eb ("powerpc/ftrace: Create a dummy stackframe to fix stack unwind") Cc: stable@vger.kernel.org # v6.5+ Signed-off-by: Naveen N Rao <naveen@kernel.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20231130065947.2188860-1-naveen@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: sanglipeng <sanglipeng1@jd.com>
-rw-r--r--arch/powerpc/kernel/trace/ftrace_64_mprofile.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
index da2ca0c6c2c472..0bc39ff532331f 100644
--- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
+++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
@@ -55,7 +55,7 @@ _GLOBAL(ftrace_regs_caller)
SAVE_10GPRS(22, r1)
/* Save previous stack pointer (r1) */
- addi r8, r1, SWITCH_FRAME_SIZE
+ addi r8, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
std r8, GPR1(r1)
/* Load special regs for save below */
@@ -150,7 +150,7 @@ ftrace_no_trace:
mflr r3
mtctr r3
REST_GPR(3, r1)
- addi r1, r1, SWITCH_FRAME_SIZE
+ addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
mtlr r0
bctr