]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
powerpc/ftrace: Fix stack teardown in ftrace_no_trace
authorNaveen N Rao <naveen@kernel.org>
Fri, 15 Dec 2023 11:14:33 +0000 (16:44 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2023 14:17:43 +0000 (15:17 +0100)
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>
arch/powerpc/kernel/trace/ftrace_64_mprofile.S

index 0b827a4b727f27e18ebf1607a0c5308d11fe01c3..5b6ea1c339985c720b2258efef15202c122b7611 100644 (file)
@@ -54,7 +54,7 @@ _GLOBAL(ftrace_regs_caller)
        SAVE_GPRS(12, 31, 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 */
@@ -147,7 +147,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