diff options
author | Richard Weinberger <richard@nod.at> | 2012-05-21 23:25:37 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2012-05-21 23:25:37 +0200 |
commit | 2ccf62b36097aa88e0ea152d6ef0c0ca2d3884e6 (patch) | |
tree | bc93e28e0e72fa0cc8c20f64f9e1f3657ad5e479 /arch/um/kernel/process.c | |
parent | 875682648b89a3ebc06176d60dc280f810647839 (diff) | |
parent | ffc51be82b17e1c515fdb2dd5b92605798216b30 (diff) |
Merge branch 'for-um' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal into for-3.5
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r-- | arch/um/kernel/process.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index 2b73dedb44c..3a2235e0abc 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c @@ -18,6 +18,7 @@ #include <linux/seq_file.h> #include <linux/tick.h> #include <linux/threads.h> +#include <linux/tracehook.h> #include <asm/current.h> #include <asm/pgtable.h> #include <asm/mmu_context.h> @@ -114,8 +115,13 @@ void interrupt_end(void) { if (need_resched()) schedule(); - if (test_tsk_thread_flag(current, TIF_SIGPENDING)) + if (test_thread_flag(TIF_SIGPENDING)) do_signal(); + if (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) { + tracehook_notify_resume(¤t->thread.regs); + if (current->replacement_session_keyring) + key_replace_session_keyring(); + } } void exit_thread(void) @@ -190,7 +196,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, if (current->thread.forking) { memcpy(&p->thread.regs.regs, ®s->regs, sizeof(p->thread.regs.regs)); - REGS_SET_SYSCALL_RETURN(p->thread.regs.regs.gp, 0); + UPT_SET_SYSCALL_RETURN(&p->thread.regs.regs, 0); if (sp != 0) REGS_SP(p->thread.regs.regs.gp) = sp; |