summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-24 07:55:30 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2012-05-22 05:59:47 +0200
commit1d5d4dbe810befe63e79b2d6cdcad2066e3b1fc4 (patch)
tree97b3c889e3b2fee67d288b3aa7377ecd64063b46 /arch
parentm68k: add TIF_NOTIFY_RESUME and handle it. (diff)
downloadlinux-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>
Diffstat (limited to 'arch')
-rw-r--r--arch/score/kernel/signal.c9
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();
+ }
}