summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2019-10-30 09:17:18 +0100
committerHelge Deller <deller@gmx.de>2019-10-30 21:24:40 +0100
commit3d252454edd0fe88c8250cb7f9dfb9ec12d208d7 (patch)
tree251da25272b1694124dc2a7ec2dd98e0dbf6544f /arch
parent320000e72ec0613e164ce9608d865396fb2da278 (diff)
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/parisc/kernel/entry.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 1d1d748c227f..b96d74496977 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -2125,7 +2125,7 @@ ftrace_regs_caller:
copy %rp, %r26
LDREG -FTRACE_FRAME_SIZE-PT_SZ_ALGN(%sp), %r25
ldo -8(%r25), %r25
- copy %r3, %arg2
+ ldo -FTRACE_FRAME_SIZE(%r1), %arg2
b,l ftrace_function_trampoline, %rp
copy %r1, %arg3 /* struct pt_regs */