Commit 8535c239 authored by Al Viro's avatar Al Viro Committed by Dinh Nguyen

nios2: page fault et.al. are *not* restartable syscalls...

make sure that ->orig_r2 is negative for everything except
the syscalls.

Fixes: 82ed08dd ("nios2: Exception handling")
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
parent 568035b0
...@@ -50,7 +50,8 @@ ...@@ -50,7 +50,8 @@
stw r13, PT_R13(sp) stw r13, PT_R13(sp)
stw r14, PT_R14(sp) stw r14, PT_R14(sp)
stw r15, PT_R15(sp) stw r15, PT_R15(sp)
stw r2, PT_ORIG_R2(sp) movi r24, -1
stw r24, PT_ORIG_R2(sp)
stw r7, PT_ORIG_R7(sp) stw r7, PT_ORIG_R7(sp)
stw ra, PT_RA(sp) stw ra, PT_RA(sp)
......
...@@ -185,6 +185,7 @@ ENTRY(handle_system_call) ...@@ -185,6 +185,7 @@ ENTRY(handle_system_call)
ldw r5, PT_R5(sp) ldw r5, PT_R5(sp)
local_restart: local_restart:
stw r2, PT_ORIG_R2(sp)
/* Check that the requested system call is within limits */ /* Check that the requested system call is within limits */
movui r1, __NR_syscalls movui r1, __NR_syscalls
bgeu r2, r1, ret_invsyscall bgeu r2, r1, ret_invsyscall
...@@ -336,9 +337,6 @@ external_interrupt: ...@@ -336,9 +337,6 @@ external_interrupt:
/* skip if no interrupt is pending */ /* skip if no interrupt is pending */
beq r12, r0, ret_from_interrupt beq r12, r0, ret_from_interrupt
movi r24, -1
stw r24, PT_ORIG_R2(sp)
/* /*
* Process an external hardware interrupt. * Process an external hardware interrupt.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment