|
|
@@ -417,10 +417,20 @@ static inline void set_restore_sigmask(void)
|
|
|
set_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
WARN_ON(!test_thread_flag(TIF_SIGPENDING));
|
|
|
}
|
|
|
+
|
|
|
+static inline void clear_tsk_restore_sigmask(struct task_struct *tsk)
|
|
|
+{
|
|
|
+ clear_tsk_thread_flag(tsk, TIF_RESTORE_SIGMASK);
|
|
|
+}
|
|
|
+
|
|
|
static inline void clear_restore_sigmask(void)
|
|
|
{
|
|
|
clear_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
}
|
|
|
+static inline bool test_tsk_restore_sigmask(struct task_struct *tsk)
|
|
|
+{
|
|
|
+ return test_tsk_thread_flag(tsk, TIF_RESTORE_SIGMASK);
|
|
|
+}
|
|
|
static inline bool test_restore_sigmask(void)
|
|
|
{
|
|
|
return test_thread_flag(TIF_RESTORE_SIGMASK);
|
|
|
@@ -438,6 +448,10 @@ static inline void set_restore_sigmask(void)
|
|
|
current->restore_sigmask = true;
|
|
|
WARN_ON(!test_thread_flag(TIF_SIGPENDING));
|
|
|
}
|
|
|
+static inline void clear_tsk_restore_sigmask(struct task_struct *tsk)
|
|
|
+{
|
|
|
+ tsk->restore_sigmask = false;
|
|
|
+}
|
|
|
static inline void clear_restore_sigmask(void)
|
|
|
{
|
|
|
current->restore_sigmask = false;
|
|
|
@@ -446,6 +460,10 @@ static inline bool test_restore_sigmask(void)
|
|
|
{
|
|
|
return current->restore_sigmask;
|
|
|
}
|
|
|
+static inline bool test_tsk_restore_sigmask(struct task_struct *tsk)
|
|
|
+{
|
|
|
+ return tsk->restore_sigmask;
|
|
|
+}
|
|
|
static inline bool test_and_clear_restore_sigmask(void)
|
|
|
{
|
|
|
if (!current->restore_sigmask)
|