|
@@ -97,11 +97,17 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
|
|
|
* set_restore_sigmask() - make sure saved_sigmask processing gets done
|
|
|
*
|
|
|
* This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code
|
|
|
- * will run before returning to user mode, to process the flag.
|
|
|
+ * will run before returning to user mode, to process the flag. For
|
|
|
+ * all callers, TIF_SIGPENDING is already set or it's no harm to set
|
|
|
+ * it. TIF_RESTORE_SIGMASK need not be in the set of bits that the
|
|
|
+ * arch code will notice on return to user mode, in case those bits
|
|
|
+ * are scarce. We set TIF_SIGPENDING here to ensure that the arch
|
|
|
+ * signal code always gets run when TIF_RESTORE_SIGMASK is set.
|
|
|
*/
|
|
|
static inline void set_restore_sigmask(void)
|
|
|
{
|
|
|
set_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
+ set_thread_flag(TIF_SIGPENDING);
|
|
|
}
|
|
|
#endif /* TIF_RESTORE_SIGMASK */
|
|
|
|