aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-24 02:37:07 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-05-21 14:19:53 -0400
commitd50349b0c397407458ea8c57aee765d158e6f9ee (patch)
tree4ba282ac4385194f8812ceae81237e6dd28274a9 /arch
parent3b7d15bde54be81e3edd773724d85d20ae42a4da (diff)
um: add TIF_NOTIFY_RESUME
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/um/include/asm/thread_info.h1
-rw-r--r--arch/um/kernel/process.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/um/include/asm/thread_info.h b/arch/um/include/asm/thread_info.h
index 200c4ab1240c..6d85ebb860fd 100644
--- a/arch/um/include/asm/thread_info.h
+++ b/arch/um/include/asm/thread_info.h
@@ -71,6 +71,7 @@ static inline struct thread_info *current_thread_info(void)
71#define TIF_MEMDIE 5 /* is terminating due to OOM killer */ 71#define TIF_MEMDIE 5 /* is terminating due to OOM killer */
72#define TIF_SYSCALL_AUDIT 6 72#define TIF_SYSCALL_AUDIT 6
73#define TIF_RESTORE_SIGMASK 7 73#define TIF_RESTORE_SIGMASK 7
74#define TIF_NOTIFY_RESUME 8
74 75
75#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) 76#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
76#define _TIF_SIGPENDING (1 << TIF_SIGPENDING) 77#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index 2b73dedb44ca..4d9af3172d9f 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -18,6 +18,7 @@
18#include <linux/seq_file.h> 18#include <linux/seq_file.h>
19#include <linux/tick.h> 19#include <linux/tick.h>
20#include <linux/threads.h> 20#include <linux/threads.h>
21#include <linux/tracehook.h>
21#include <asm/current.h> 22#include <asm/current.h>
22#include <asm/pgtable.h> 23#include <asm/pgtable.h>
23#include <asm/mmu_context.h> 24#include <asm/mmu_context.h>
@@ -114,8 +115,13 @@ void interrupt_end(void)
114{ 115{
115 if (need_resched()) 116 if (need_resched())
116 schedule(); 117 schedule();
117 if (test_tsk_thread_flag(current, TIF_SIGPENDING)) 118 if (test_thread_flag(TIF_SIGPENDING))
118 do_signal(); 119 do_signal();
120 if (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) {
121 tracehook_notify_resume(&current->thread.regs);
122 if (current->replacement_session_keyring)
123 key_replace_session_keyring();
124 }
119} 125}
120 126
121void exit_thread(void) 127void exit_thread(void)