Commit 615869e4 authored by Richard Weinberger's avatar Richard Weinberger Committed by Richard Weinberger

c6x: Use sigsp()

Use sigsp() instead of the open coded variant.
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
Acked-by: default avatarMark Salter <msalter@redhat.com>
parent e90670a9
...@@ -127,17 +127,11 @@ static int setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, ...@@ -127,17 +127,11 @@ static int setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
return err; return err;
} }
static inline void __user *get_sigframe(struct k_sigaction *ka, static inline void __user *get_sigframe(struct ksignal *ksig,
struct pt_regs *regs, struct pt_regs *regs,
unsigned long framesize) unsigned long framesize)
{ {
unsigned long sp = regs->sp; unsigned long sp = sigsp(regs->sp, ksig);
/*
* This is the X/Open sanctioned signal stack switching.
*/
if ((ka->sa.sa_flags & SA_ONSTACK) && sas_ss_flags(sp) == 0)
sp = current->sas_ss_sp + current->sas_ss_size;
/* /*
* No matter what happens, 'sp' must be dword * No matter what happens, 'sp' must be dword
...@@ -153,7 +147,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, ...@@ -153,7 +147,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
unsigned long __user *retcode; unsigned long __user *retcode;
int err = 0; int err = 0;
frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); frame = get_sigframe(ksig, regs, sizeof(*frame));
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
return -EFAULT; return -EFAULT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment