summaryrefslogtreecommitdiffstats
path: root/arch/hexagon
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-12-23 08:46:34 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-04 00:15:58 +0100
commitda36f98a52e3a299fa067967e2928e9d53d3102f (patch)
tree717015d1a866739a7b71e39896577f6255d2f5f3 /arch/hexagon
parenthexagon: switch to generic sigaltstack (diff)
downloadlinux-da36f98a52e3a299fa067967e2928e9d53d3102f.tar.xz
linux-da36f98a52e3a299fa067967e2928e9d53d3102f.zip
hexagon: don't leave ->uc_stack uninitialized
it's used on rt_sigreturn(2) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/hexagon')
-rw-r--r--arch/hexagon/kernel/signal.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/hexagon/kernel/signal.c b/arch/hexagon/kernel/signal.c
index 46ebd4794663..60fa2ca3202b 100644
--- a/arch/hexagon/kernel/signal.c
+++ b/arch/hexagon/kernel/signal.c
@@ -125,6 +125,7 @@ static int setup_rt_frame(int signr, struct k_sigaction *ka, siginfo_t *info,
err |= __put_user(0x5400c004, &frame->tramp[1]);
err |= setup_sigcontext(regs, &frame->uc.uc_mcontext);
err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
+ err |= __save_altstack(&frame->uc.uc_stack, user_stack_pointer(regs));
if (err)
goto sigsegv;