parisc: fix frame pointer in ftrace_regs_caller()

The current code in ftrace_regs_caller() doesn't assign
%r3 to contain the address of the current frame. This
is hidden if the kernel is compiled with FRAME_POINTER,
but without it just crashes because it tries to dereference
an arbitrary address. Fix this by always setting %r3 to the
current stack frame.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
Sven Schnelle 2019-10-30 09:17:18 +01:00 committed by Helge Deller
parent 320000e72e
commit 3d252454ed
1 changed files with 1 additions and 1 deletions

View File

@ -2125,7 +2125,7 @@ ftrace_regs_caller:
copy %rp, %r26 copy %rp, %r26
LDREG -FTRACE_FRAME_SIZE-PT_SZ_ALGN(%sp), %r25 LDREG -FTRACE_FRAME_SIZE-PT_SZ_ALGN(%sp), %r25
ldo -8(%r25), %r25 ldo -8(%r25), %r25
copy %r3, %arg2 ldo -FTRACE_FRAME_SIZE(%r1), %arg2
b,l ftrace_function_trampoline, %rp b,l ftrace_function_trampoline, %rp
copy %r1, %arg3 /* struct pt_regs */ copy %r1, %arg3 /* struct pt_regs */