diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-14 14:09:47 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-19 18:07:40 -0500 |
commit | 6bf9adfc90370b695cb111116e15fdc0e1906270 (patch) | |
tree | b8e4d369cadad21f33b7a5f7f69d43665f821ddc /kernel/signal.c | |
parent | 9b064fc3f95a8e44e929fdf4d6037334ea03d15b (diff) | |
download | lwn-6bf9adfc90370b695cb111116e15fdc0e1906270.tar.gz lwn-6bf9adfc90370b695cb111116e15fdc0e1906270.zip |
introduce generic sys_sigaltstack(), switch x86 and um to it
Conditional on CONFIG_GENERIC_SIGALTSTACK; architectures that do not
select it are completely unaffected
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 887f2fefe207..f05f4c4150d9 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3102,6 +3102,12 @@ do_sigaltstack (const stack_t __user *uss, stack_t __user *uoss, unsigned long s out: return error; } +#ifdef CONFIG_GENERIC_SIGALTSTACK +SYSCALL_DEFINE2(sigaltstack,const stack_t __user *,uss, stack_t __user *,uoss) +{ + return do_sigaltstack(uss, uoss, current_user_stack_pointer()); +} +#endif int restore_altstack(const stack_t __user *uss) { |