diff options
Diffstat (limited to 'arch/sh/kernel/signal_64.c')
-rw-r--r-- | arch/sh/kernel/signal_64.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c index d867cd95a622..0fba66e2b202 100644 --- a/arch/sh/kernel/signal_64.c +++ b/arch/sh/kernel/signal_64.c | |||
@@ -170,15 +170,6 @@ sys_sigaction(int sig, const struct old_sigaction __user *act, | |||
170 | return ret; | 170 | return ret; |
171 | } | 171 | } |
172 | 172 | ||
173 | asmlinkage int | ||
174 | sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, | ||
175 | unsigned long r4, unsigned long r5, unsigned long r6, | ||
176 | unsigned long r7, | ||
177 | struct pt_regs * regs) | ||
178 | { | ||
179 | return do_sigaltstack(uss, uoss, REF_REG_SP); | ||
180 | } | ||
181 | |||
182 | /* | 173 | /* |
183 | * Do a signal return; undo the signal stack. | 174 | * Do a signal return; undo the signal stack. |
184 | */ | 175 | */ |
@@ -364,9 +355,7 @@ asmlinkage int sys_rt_sigreturn(unsigned long r2, unsigned long r3, | |||
364 | goto badframe; | 355 | goto badframe; |
365 | regs->pc -= 4; | 356 | regs->pc -= 4; |
366 | 357 | ||
367 | /* It is more difficult to avoid calling this function than to | 358 | if (restore_altstack(&frame->uc.uc_stack)) |
368 | call it and ignore errors. */ | ||
369 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, REF_REG_SP) == -EFAULT) | ||
370 | goto badframe; | 359 | goto badframe; |
371 | 360 | ||
372 | return (int) ret; | 361 | return (int) ret; |
@@ -560,11 +549,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
560 | /* Create the ucontext. */ | 549 | /* Create the ucontext. */ |
561 | err |= __put_user(0, &frame->uc.uc_flags); | 550 | err |= __put_user(0, &frame->uc.uc_flags); |
562 | err |= __put_user(0, &frame->uc.uc_link); | 551 | err |= __put_user(0, &frame->uc.uc_link); |
563 | err |= __put_user((void *)current->sas_ss_sp, | 552 | err |= __save_altstack(&frame->uc.uc_stack, regs->regs[REG_SP]); |
564 | &frame->uc.uc_stack.ss_sp); | ||
565 | err |= __put_user(sas_ss_flags(regs->regs[REG_SP]), | ||
566 | &frame->uc.uc_stack.ss_flags); | ||
567 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); | ||
568 | err |= setup_sigcontext(&frame->uc.uc_mcontext, | 553 | err |= setup_sigcontext(&frame->uc.uc_mcontext, |
569 | regs, set->sig[0]); | 554 | regs, set->sig[0]); |
570 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 555 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |