Commit edd63a27 authored by Al Viro's avatar Al Viro

set_restore_sigmask() is never called without SIGPENDING (and never should be)

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 6fd84c08
...@@ -141,7 +141,7 @@ static inline void set_restore_sigmask(void) ...@@ -141,7 +141,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, &ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, &ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -166,7 +166,7 @@ static inline void set_restore_sigmask(void) ...@@ -166,7 +166,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -140,7 +140,7 @@ static inline void set_restore_sigmask(void) ...@@ -140,7 +140,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->local_flags |= _TLF_RESTORE_SIGMASK; ti->local_flags |= _TLF_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, &ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, &ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -169,7 +169,7 @@ static inline void set_restore_sigmask(void) ...@@ -169,7 +169,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags));
} }
#define TI_FLAG_FAULT_CODE_SHIFT 24 #define TI_FLAG_FAULT_CODE_SHIFT 24
......
...@@ -238,7 +238,7 @@ static inline void set_restore_sigmask(void) ...@@ -238,7 +238,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, &ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, &ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -166,7 +166,7 @@ static inline void set_restore_sigmask(void) ...@@ -166,7 +166,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, &ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, &ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -248,7 +248,7 @@ static inline void set_restore_sigmask(void) ...@@ -248,7 +248,7 @@ static inline void set_restore_sigmask(void)
{ {
struct thread_info *ti = current_thread_info(); struct thread_info *ti = current_thread_info();
ti->status |= TS_RESTORE_SIGMASK; ti->status |= TS_RESTORE_SIGMASK;
set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); WARN_ON(!test_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#define _LINUX_THREAD_INFO_H #define _LINUX_THREAD_INFO_H
#include <linux/types.h> #include <linux/types.h>
#include <linux/bug.h>
struct timespec; struct timespec;
struct compat_timespec; struct compat_timespec;
...@@ -125,7 +126,7 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) ...@@ -125,7 +126,7 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
static inline void set_restore_sigmask(void) static inline void set_restore_sigmask(void)
{ {
set_thread_flag(TIF_RESTORE_SIGMASK); set_thread_flag(TIF_RESTORE_SIGMASK);
set_thread_flag(TIF_SIGPENDING); WARN_ON(!test_thread_flag(TIF_SIGPENDING));
} }
static inline void clear_restore_sigmask(void) static inline void clear_restore_sigmask(void)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment