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