aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m32r/kernel/signal.c')
-rw-r--r--arch/m32r/kernel/signal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c
index acd69f7f3357..db152263484f 100644
--- a/arch/m32r/kernel/signal.c
+++ b/arch/m32r/kernel/signal.c
@@ -282,6 +282,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
282 regs->bpc -= 2; 282 regs->bpc -= 2;
283 else 283 else
284 regs->bpc -= 4; 284 regs->bpc -= 4;
285 regs->syscall_nr = -1;
285 } 286 }
286 } 287 }
287 288
@@ -353,8 +354,8 @@ static int do_signal(struct pt_regs *regs)
353 regs->bpc -= 2; 354 regs->bpc -= 2;
354 else 355 else
355 regs->bpc -= 4; 356 regs->bpc -= 4;
356 } 357 regs->syscall_nr = -1;
357 if (regs->r0 == -ERESTART_RESTARTBLOCK){ 358 } else if (regs->r0 == -ERESTART_RESTARTBLOCK){
358 regs->r0 = regs->orig_r0; 359 regs->r0 = regs->orig_r0;
359 regs->r7 = __NR_restart_syscall; 360 regs->r7 = __NR_restart_syscall;
360 inst = *(unsigned short *)(regs->bpc - 2); 361 inst = *(unsigned short *)(regs->bpc - 2);
@@ -362,6 +363,7 @@ static int do_signal(struct pt_regs *regs)
362 regs->bpc -= 2; 363 regs->bpc -= 2;
363 else 364 else
364 regs->bpc -= 4; 365 regs->bpc -= 4;
366 regs->syscall_nr = -1;
365 } 367 }
366 } 368 }
367 if (test_thread_flag(TIF_RESTORE_SIGMASK)) { 369 if (test_thread_flag(TIF_RESTORE_SIGMASK)) {