diff options
Diffstat (limited to 'arch/avr32/kernel/signal.c')
-rw-r--r-- | arch/avr32/kernel/signal.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/arch/avr32/kernel/signal.c b/arch/avr32/kernel/signal.c index 5e01c3a40ced..b80c0b3d2bab 100644 --- a/arch/avr32/kernel/signal.c +++ b/arch/avr32/kernel/signal.c | |||
@@ -21,12 +21,6 @@ | |||
21 | #include <asm/ucontext.h> | 21 | #include <asm/ucontext.h> |
22 | #include <asm/syscalls.h> | 22 | #include <asm/syscalls.h> |
23 | 23 | ||
24 | asmlinkage int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, | ||
25 | struct pt_regs *regs) | ||
26 | { | ||
27 | return do_sigaltstack(uss, uoss, regs->sp); | ||
28 | } | ||
29 | |||
30 | struct rt_sigframe | 24 | struct rt_sigframe |
31 | { | 25 | { |
32 | struct siginfo info; | 26 | struct siginfo info; |
@@ -91,7 +85,7 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) | |||
91 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) | 85 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) |
92 | goto badframe; | 86 | goto badframe; |
93 | 87 | ||
94 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->sp) == -EFAULT) | 88 | if (restore_altstack(&frame->uc.uc_stack)) |
95 | goto badframe; | 89 | goto badframe; |
96 | 90 | ||
97 | pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", | 91 | pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", |
@@ -175,12 +169,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
175 | /* Set up the ucontext */ | 169 | /* Set up the ucontext */ |
176 | err |= __put_user(0, &frame->uc.uc_flags); | 170 | err |= __put_user(0, &frame->uc.uc_flags); |
177 | err |= __put_user(NULL, &frame->uc.uc_link); | 171 | err |= __put_user(NULL, &frame->uc.uc_link); |
178 | err |= __put_user((void __user *)current->sas_ss_sp, | 172 | err |= __save_altstack(&frame->uc.uc_stack, regs->sp); |
179 | &frame->uc.uc_stack.ss_sp); | ||
180 | err |= __put_user(sas_ss_flags(regs->sp), | ||
181 | &frame->uc.uc_stack.ss_flags); | ||
182 | err |= __put_user(current->sas_ss_size, | ||
183 | &frame->uc.uc_stack.ss_size); | ||
184 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs); | 173 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs); |
185 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 174 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |
186 | 175 | ||