summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/riscv/kernel/traps.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c
index 1f4e37be7eb3..8c258b78c925 100644
--- a/arch/riscv/kernel/traps.c
+++ b/arch/riscv/kernel/traps.c
@@ -270,11 +270,11 @@ asmlinkage __visible __trap_section void do_trap_ecall_u(struct pt_regs *regs)
if (user_mode(regs)) {
ulong syscall = regs->a7;
- syscall = syscall_enter_from_user_mode(regs, syscall);
-
regs->epc += 4;
regs->orig_a0 = regs->a0;
+ syscall = syscall_enter_from_user_mode(regs, syscall);
+
if (syscall < NR_syscalls)
syscall_handler(regs, syscall);
else