diff options
author | Barry Song <barry.song@analog.com> | 2009-12-08 09:55:37 (GMT) |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-12-15 05:16:52 (GMT) |
commit | d1be2e485bfb5e3ee3ef5d2131f0151f9a3c4387 (patch) | |
tree | 58cb8950840e263f2f1e0dd9d18a5a6df0aa7578 /arch/blackfin/kernel | |
parent | 88f7c2fb0fa96887c7be8cdb00afb1a6f9d7894e (diff) | |
download | linux-fsl-qoriq-d1be2e485bfb5e3ee3ef5d2131f0151f9a3c4387.tar.xz |
Blackfin: add support for TIF_NOTIFY_RESUME
Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r-- | arch/blackfin/kernel/signal.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c index 9d90c18..e0fd63e 100644 --- a/arch/blackfin/kernel/signal.c +++ b/arch/blackfin/kernel/signal.c @@ -12,6 +12,7 @@ #include <linux/binfmts.h> #include <linux/freezer.h> #include <linux/uaccess.h> +#include <linux/tracehook.h> #include <asm/cacheflush.h> #include <asm/ucontext.h> @@ -332,3 +333,20 @@ asmlinkage void do_signal(struct pt_regs *regs) sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); } } + +/* + * notification of userspace execution resumption + */ +asmlinkage void do_notify_resume(struct pt_regs *regs) +{ + if (test_thread_flag(TIF_SIGPENDING) || test_thread_flag(TIF_RESTORE_SIGMASK)) + do_signal(regs); + + if (test_thread_flag(TIF_NOTIFY_RESUME)) { + clear_thread_flag(TIF_NOTIFY_RESUME); + tracehook_notify_resume(regs); + if (current->replacement_session_keyring) + key_replace_session_keyring(); + } +} + |