|
@@ -464,7 +464,7 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
|
|
if (!user_mode(&scr->pt))
|
|
if (!user_mode(&scr->pt))
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (test_thread_flag(TIF_RESTORE_SIGMASK))
|
|
|
|
|
|
+ if (current_thread_info()->status & TS_RESTORE_SIGMASK)
|
|
oldset = ¤t->saved_sigmask;
|
|
oldset = ¤t->saved_sigmask;
|
|
else
|
|
else
|
|
oldset = ¤t->blocked;
|
|
oldset = ¤t->blocked;
|
|
@@ -530,12 +530,13 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
|
|
* continue to iterate in this loop so we can deliver the SIGSEGV...
|
|
* continue to iterate in this loop so we can deliver the SIGSEGV...
|
|
*/
|
|
*/
|
|
if (handle_signal(signr, &ka, &info, oldset, scr)) {
|
|
if (handle_signal(signr, &ka, &info, oldset, scr)) {
|
|
- /* a signal was successfully delivered; the saved
|
|
|
|
|
|
+ /*
|
|
|
|
+ * A signal was successfully delivered; the saved
|
|
* sigmask will have been stored in the signal frame,
|
|
* sigmask will have been stored in the signal frame,
|
|
* and will be restored by sigreturn, so we can simply
|
|
* and will be restored by sigreturn, so we can simply
|
|
- * clear the TIF_RESTORE_SIGMASK flag */
|
|
|
|
- if (test_thread_flag(TIF_RESTORE_SIGMASK))
|
|
|
|
- clear_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
|
|
|
+ * clear the TS_RESTORE_SIGMASK flag.
|
|
|
|
+ */
|
|
|
|
+ current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -566,8 +567,8 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
|
|
|
|
|
|
/* if there's no signal to deliver, we just put the saved sigmask
|
|
/* if there's no signal to deliver, we just put the saved sigmask
|
|
* back */
|
|
* back */
|
|
- if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
|
|
|
|
- clear_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
|
|
|
+ if (current_thread_info()->status & TS_RESTORE_SIGMASK) {
|
|
|
|
+ current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
|
|
sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL);
|
|
sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL);
|
|
}
|
|
}
|
|
}
|
|
}
|