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>
This commit is contained in:
Al Viro 2012-04-26 18:17:28 -04:00
parent a53bb24e76
commit 415d04d08f

View File

@ -447,15 +447,12 @@ static void do_signal(struct pt_regs *regs, int syscall)
regs->UCreg_00 == -ERESTARTNOINTR) { regs->UCreg_00 == -ERESTARTNOINTR) {
setup_syscall_restart(regs); setup_syscall_restart(regs);
} }
}
/* If there's no signal to deliver, we just put the saved /* If there's no signal to deliver, we just put the saved
* sigmask back. * sigmask back.
*/ */
if (test_thread_flag(TIF_RESTORE_SIGMASK)) { if (test_and_clear_thread_flag(TIF_RESTORE_SIGMASK))
clear_thread_flag(TIF_RESTORE_SIGMASK); set_current_blocked(&current->saved_sigmask);
sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
}
}
} }
asmlinkage void do_notify_resume(struct pt_regs *regs, asmlinkage void do_notify_resume(struct pt_regs *regs,