Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86a89da5 authored by Al Viro's avatar Al Viro Committed by Greg Kroah-Hartman
Browse files

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



commit 8535c239ac674f7ead0f2652932d35c52c4123b2 upstream.

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>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 96533334
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -50,7 +50,8 @@
	stw	r13, PT_R13(sp)
	stw	r14, PT_R14(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	ra, PT_RA(sp)
+1 −3
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ ENTRY(handle_system_call)
	ldw	r5, PT_R5(sp)

local_restart:
	stw	r2, PT_ORIG_R2(sp)
	/* Check that the requested system call is within limits */
	movui	r1, __NR_syscalls
	bgeu	r2, r1, ret_invsyscall
@@ -336,9 +337,6 @@ external_interrupt:
	/* skip if no interrupt is pending */
	beq	r12, r0, ret_from_interrupt

	movi	r24, -1
	stw	r24, PT_ORIG_R2(sp)

	/*
	 * Process an external hardware interrupt.
	 */