aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/thread_info.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index 43d8162c696e..81c5f82f0663 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -97,11 +97,17 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
97 * set_restore_sigmask() - make sure saved_sigmask processing gets done 97 * set_restore_sigmask() - make sure saved_sigmask processing gets done
98 * 98 *
99 * This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code 99 * This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code
100 * will run before returning to user mode, to process the flag. 100 * will run before returning to user mode, to process the flag. For
101 * all callers, TIF_SIGPENDING is already set or it's no harm to set
102 * it. TIF_RESTORE_SIGMASK need not be in the set of bits that the
103 * arch code will notice on return to user mode, in case those bits
104 * are scarce. We set TIF_SIGPENDING here to ensure that the arch
105 * signal code always gets run when TIF_RESTORE_SIGMASK is set.
101 */ 106 */
102static inline void set_restore_sigmask(void) 107static inline void set_restore_sigmask(void)
103{ 108{
104 set_thread_flag(TIF_RESTORE_SIGMASK); 109 set_thread_flag(TIF_RESTORE_SIGMASK);
110 set_thread_flag(TIF_SIGPENDING);
105} 111}
106#endif /* TIF_RESTORE_SIGMASK */ 112#endif /* TIF_RESTORE_SIGMASK */
107 113