powerpc64/ftrace: fix clobbered r15 during livepatching
While r15 is clobbered always with PPC_FTRACE_OUT_OF_LINE, it is
not restored in livepatch sequence leading to not so obvious fails
like below:
BUG: Unable to handle kernel data access on write at 0xc0000000000f9078
Faulting instruction address: 0xc0000000018ff958
Oops: Kernel access of bad area, sig: 11 [#1]
...
NIP:
c0000000018ff958 LR:
c0000000018ff930 CTR:
c0000000009c0790
REGS:
c00000005f2e7790 TRAP: 0300 Tainted: G K (6.14.0+)
MSR:
8000000000009033 <SF,EE,ME,IR,DR,RI,LE> CR:
2822880b XER:
20040000
CFAR:
c0000000008addc0 DAR:
c0000000000f9078 DSISR:
0a000000 IRQMASK: 1
GPR00:
c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488
GPR04:
0000000000000008 0000000000000000 c0000000018f24fc 000000000000000d
GPR08:
fffffffffffe0000 000000000000000d 0000000000000000 0000000000008000
GPR12:
c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c0000000000f9070
GPR16:
c00000005f2e7c90 0000000000000000 0000000000000000 0000000000000000
GPR20:
0000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88
GPR24:
c00000005f2e7c60 0000000000000001 c0000000000f9078 0000000000000000
GPR28:
00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078
...
Call Trace:
check_heap_object+0x34/0x390 (unreliable)
__mutex_unlock_slowpath.isra.0+0xe4/0x230
seq_read_iter+0x430/0xa90
proc_reg_read_iter+0xa4/0x200
vfs_read+0x41c/0x510
ksys_read+0xa4/0x190
system_call_exception+0x1d0/0x440
system_call_vectored_common+0x15c/0x2ec
Fix it by restoring r15 always.
Fixes: eec37961a56a ("powerpc64/ftrace: Move ftrace sequence out of line")
Reported-by: Viktor Malik <vmalik@redhat.com>
Closes: https://lore.kernel.org/lkml/1aec4a9a-a30b-43fd-b303-7a351caeccb7@redhat.com
Cc: stable@vger.kernel.org # v6.13+
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Tested-by: Viktor Malik <vmalik@redhat.com>
Acked-by: Naveen N Rao (AMD) <naveen@kernel.org>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250416191227.201146-1-hbathini@linux.ibm.com