diff options
Diffstat (limited to 'arch/tile/kernel')
-rw-r--r-- | arch/tile/kernel/signal.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/tile/kernel/signal.c b/arch/tile/kernel/signal.c index fb28e85ae3a..704ce0bce83 100644 --- a/arch/tile/kernel/signal.c +++ b/arch/tile/kernel/signal.c | |||
@@ -330,7 +330,7 @@ void do_signal(struct pt_regs *regs) | |||
330 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; | 330 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; |
331 | } | 331 | } |
332 | 332 | ||
333 | return; | 333 | goto done; |
334 | } | 334 | } |
335 | 335 | ||
336 | /* Did we come from a system call? */ | 336 | /* Did we come from a system call? */ |
@@ -358,4 +358,8 @@ void do_signal(struct pt_regs *regs) | |||
358 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; | 358 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; |
359 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); | 359 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); |
360 | } | 360 | } |
361 | |||
362 | done: | ||
363 | /* Avoid double syscall restart if there are nested signals. */ | ||
364 | regs->faultnum = INT_SWINT_1_SIGRETURN; | ||
361 | } | 365 | } |