diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-24 02:37:07 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-21 14:19:53 -0400 |
commit | d50349b0c397407458ea8c57aee765d158e6f9ee (patch) | |
tree | 4ba282ac4385194f8812ceae81237e6dd28274a9 /arch | |
parent | 3b7d15bde54be81e3edd773724d85d20ae42a4da (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.h | 1 | ||||
-rw-r--r-- | arch/um/kernel/process.c | 8 |
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(¤t->thread.regs); | ||
122 | if (current->replacement_session_keyring) | ||
123 | key_replace_session_keyring(); | ||
124 | } | ||
119 | } | 125 | } |
120 | 126 | ||
121 | void exit_thread(void) | 127 | void exit_thread(void) |