summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/signal_64.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-12-23 03:41:17 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-03 18:16:17 -0500
commit99b06feb0f7c99f171cb962d0e6a17f81625abd3 (patch)
treee2d184a61dcf5b0317bfbc204c1e9e4256649b7f /arch/sparc/kernel/signal_64.c
parent0aa0203fb43f04714004b2c4ad33b858e240555d (diff)
downloadtalos-obmc-linux-99b06feb0f7c99f171cb962d0e6a17f81625abd3.tar.gz
talos-obmc-linux-99b06feb0f7c99f171cb962d0e6a17f81625abd3.zip
sparc: switch to generic sigaltstack
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sparc/kernel/signal_64.c')
-rw-r--r--arch/sparc/kernel/signal_64.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index 689e1ba62809..176e0e7b8f60 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -295,7 +295,8 @@ void do_rt_sigreturn(struct pt_regs *regs)
err |= restore_fpu_state(regs, fpu_save);
err |= __copy_from_user(&set, &sf->mask, sizeof(sigset_t));
- if (err || do_sigaltstack(&sf->stack, NULL, (unsigned long)sf) == -EFAULT)
+ err |= restore_altstack(&sf->stack);
+ if (err)
goto segv;
err |= __get_user(rwin_save, &sf->rwin_save);
@@ -403,9 +404,7 @@ setup_rt_frame(struct k_sigaction *ka, struct pt_regs *regs,
}
/* Setup sigaltstack */
- err |= __put_user(current->sas_ss_sp, &sf->stack.ss_sp);
- err |= __put_user(sas_ss_flags(regs->u_regs[UREG_FP]), &sf->stack.ss_flags);
- err |= __put_user(current->sas_ss_size, &sf->stack.ss_size);
+ err |= __save_altstack(&sf->stack, regs->u_regs[UREG_FP]);
err |= copy_to_user(&sf->mask, oldset, sizeof(sigset_t));
OpenPOWER on IntegriCloud