diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-26 18:17:28 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-22 00:01:09 -0400 |
| commit | 415d04d08fec74b226c92c1fb54ad117c9c6bac4 (patch) | |
| tree | 75abbdd83cf3e20b92866e4981ecb27c44dc7e7d | |
| parent | a53bb24e7666870bbc195e295a936aa0a58ce313 (diff) | |
unicore32: if there's no handler we need to restore sigmask, syscall or no syscall
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | arch/unicore32/kernel/signal.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/unicore32/kernel/signal.c b/arch/unicore32/kernel/signal.c index 72d953190419..7754df6ef7d4 100644 --- a/arch/unicore32/kernel/signal.c +++ b/arch/unicore32/kernel/signal.c | |||
| @@ -447,15 +447,12 @@ static void do_signal(struct pt_regs *regs, int syscall) | |||
| 447 | regs->UCreg_00 == -ERESTARTNOINTR) { | 447 | regs->UCreg_00 == -ERESTARTNOINTR) { |
| 448 | setup_syscall_restart(regs); | 448 | setup_syscall_restart(regs); |
| 449 | } | 449 | } |
| 450 | |||
| 451 | /* If there's no signal to deliver, we just put the saved | ||
| 452 | * sigmask back. | ||
| 453 | */ | ||
| 454 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) { | ||
| 455 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
| 456 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); | ||
| 457 | } | ||
| 458 | } | 450 | } |
| 451 | /* If there's no signal to deliver, we just put the saved | ||
| 452 | * sigmask back. | ||
| 453 | */ | ||
| 454 | if (test_and_clear_thread_flag(TIF_RESTORE_SIGMASK)) | ||
| 455 | set_current_blocked(¤t->saved_sigmask); | ||
| 459 | } | 456 | } |
| 460 | 457 | ||
| 461 | asmlinkage void do_notify_resume(struct pt_regs *regs, | 458 | asmlinkage void do_notify_resume(struct pt_regs *regs, |
