diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-14 15:25:43 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-19 18:07:42 -0500 |
commit | 50ececcfa7d1acee085b2c518cad495062db6379 (patch) | |
tree | 3e947b8208e40f34a867be42d0a3908f53844a01 | |
parent | c40702c49faef05ae324f121d8b3e215244ee152 (diff) |
alpha: switch to generic sigaltstack
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/alpha/Kconfig | 1 | ||||
-rw-r--r-- | arch/alpha/kernel/signal.c | 10 |
2 files changed, 2 insertions, 9 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 7e3710c0cce5..9d5904cc7712 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -22,6 +22,7 @@ config ALPHA | |||
22 | select GENERIC_STRNLEN_USER | 22 | select GENERIC_STRNLEN_USER |
23 | select HAVE_MOD_ARCH_SPECIFIC | 23 | select HAVE_MOD_ARCH_SPECIFIC |
24 | select MODULES_USE_ELF_RELA | 24 | select MODULES_USE_ELF_RELA |
25 | select GENERIC_SIGALTSTACK | ||
25 | help | 26 | help |
26 | The Alpha is a 64-bit general-purpose processor designed and | 27 | The Alpha is a 64-bit general-purpose processor designed and |
27 | marketed by the Digital Equipment Corporation of blessed memory, | 28 | marketed by the Digital Equipment Corporation of blessed memory, |
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c index 336393c9c11f..02d02c047f17 100644 --- a/arch/alpha/kernel/signal.c +++ b/arch/alpha/kernel/signal.c | |||
@@ -122,12 +122,6 @@ SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask) | |||
122 | return sigsuspend(&blocked); | 122 | return sigsuspend(&blocked); |
123 | } | 123 | } |
124 | 124 | ||
125 | asmlinkage int | ||
126 | sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) | ||
127 | { | ||
128 | return do_sigaltstack(uss, uoss, rdusp()); | ||
129 | } | ||
130 | |||
131 | /* | 125 | /* |
132 | * Do a signal return; undo the signal stack. | 126 | * Do a signal return; undo the signal stack. |
133 | */ | 127 | */ |
@@ -418,9 +412,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
418 | err |= __put_user(0, &frame->uc.uc_flags); | 412 | err |= __put_user(0, &frame->uc.uc_flags); |
419 | err |= __put_user(0, &frame->uc.uc_link); | 413 | err |= __put_user(0, &frame->uc.uc_link); |
420 | err |= __put_user(set->sig[0], &frame->uc.uc_osf_sigmask); | 414 | err |= __put_user(set->sig[0], &frame->uc.uc_osf_sigmask); |
421 | err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); | 415 | err |= __save_altstack(&frame->uc.uc_stack, oldsp); |
422 | err |= __put_user(sas_ss_flags(oldsp), &frame->uc.uc_stack.ss_flags); | ||
423 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); | ||
424 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, | 416 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, |
425 | set->sig[0], oldsp); | 417 | set->sig[0], oldsp); |
426 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 418 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |