diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-24 07:55:30 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-22 05:59:47 +0200 |
commit | 1d5d4dbe810befe63e79b2d6cdcad2066e3b1fc4 (patch) | |
tree | 97b3c889e3b2fee67d288b3aa7377ecd64063b46 | |
parent | m68k: add TIF_NOTIFY_RESUME and handle it. (diff) | |
download | linux-1d5d4dbe810befe63e79b2d6cdcad2066e3b1fc4.tar.xz linux-1d5d4dbe810befe63e79b2d6cdcad2066e3b1fc4.zip |
score: add handling of NOTIFY_RESUME to do_notify_resume()
It's already called if TIF_NOTIFY_RESUME is set, so we only
need to add the actual work. Note that checking for RESTORE_SIGMASK
was not needed - set_restore_sigmask() also sets SIGPENDING, so
we never RESTORE_SIGMASK without SIGPENDING.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/score/kernel/signal.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/score/kernel/signal.c b/arch/score/kernel/signal.c index a087ad85175a..d4a49011c48a 100644 --- a/arch/score/kernel/signal.c +++ b/arch/score/kernel/signal.c @@ -28,6 +28,7 @@ #include <linux/ptrace.h> #include <linux/unistd.h> #include <linux/uaccess.h> +#include <linux/tracehook.h> #include <asm/cacheflush.h> #include <asm/syscalls.h> @@ -350,6 +351,12 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags) { /* deal with pending signal delivery */ - if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)) + if (thread_info_flags & _TIF_SIGPENDING) do_signal(regs); + if (thread_info_flags & _TIF_NOTIFY_RESUME) { + clear_thread_flag(TIF_NOTIFY_RESUME); + tracehook_notify_resume(regs); + if (current->replacement_session_keyring) + key_replace_session_keyring(); + } } |