diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index d622eac9d169..35e97f4073c2 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/posix-timers.h> | 45 | #include <linux/posix-timers.h> |
46 | #include <linux/livepatch.h> | 46 | #include <linux/livepatch.h> |
47 | #include <linux/cgroup.h> | 47 | #include <linux/cgroup.h> |
48 | #include <linux/audit.h> | ||
48 | 49 | ||
49 | #define CREATE_TRACE_POINTS | 50 | #define CREATE_TRACE_POINTS |
50 | #include <trace/events/signal.h> | 51 | #include <trace/events/signal.h> |
@@ -54,7 +55,6 @@ | |||
54 | #include <asm/unistd.h> | 55 | #include <asm/unistd.h> |
55 | #include <asm/siginfo.h> | 56 | #include <asm/siginfo.h> |
56 | #include <asm/cacheflush.h> | 57 | #include <asm/cacheflush.h> |
57 | #include "audit.h" /* audit_signal_info() */ | ||
58 | 58 | ||
59 | /* | 59 | /* |
60 | * SLAB caches for signal bits. | 60 | * SLAB caches for signal bits. |
@@ -2912,7 +2912,8 @@ EXPORT_SYMBOL(set_compat_user_sigmask); | |||
2912 | * This is useful for syscalls such as ppoll, pselect, io_pgetevents and | 2912 | * This is useful for syscalls such as ppoll, pselect, io_pgetevents and |
2913 | * epoll_pwait where a new sigmask is passed in from userland for the syscalls. | 2913 | * epoll_pwait where a new sigmask is passed in from userland for the syscalls. |
2914 | */ | 2914 | */ |
2915 | void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved) | 2915 | void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved, |
2916 | bool interrupted) | ||
2916 | { | 2917 | { |
2917 | 2918 | ||
2918 | if (!usigmask) | 2919 | if (!usigmask) |
@@ -2922,7 +2923,7 @@ void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved) | |||
2922 | * Restoring sigmask here can lead to delivering signals that the above | 2923 | * Restoring sigmask here can lead to delivering signals that the above |
2923 | * syscalls are intended to block because of the sigmask passed in. | 2924 | * syscalls are intended to block because of the sigmask passed in. |
2924 | */ | 2925 | */ |
2925 | if (signal_pending(current)) { | 2926 | if (interrupted) { |
2926 | current->saved_sigmask = *sigsaved; | 2927 | current->saved_sigmask = *sigsaved; |
2927 | set_restore_sigmask(); | 2928 | set_restore_sigmask(); |
2928 | return; | 2929 | return; |