x86: signal: introduce do_rt_sigreturn()
introduce do_rt_sigreturn(), to collect common part of sys_rt_sigreturn(). No change in functionality intended. Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
2ba48e16e7
commit
e6babb6b7f
@@ -215,9 +215,8 @@ badframe:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage int sys_rt_sigreturn(unsigned long __unused)
|
static long do_rt_sigreturn(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct pt_regs *regs = (struct pt_regs *)&__unused;
|
|
||||||
struct rt_sigframe __user *frame;
|
struct rt_sigframe __user *frame;
|
||||||
unsigned long ax;
|
unsigned long ax;
|
||||||
sigset_t set;
|
sigset_t set;
|
||||||
@@ -243,10 +242,17 @@ asmlinkage int sys_rt_sigreturn(unsigned long __unused)
|
|||||||
return ax;
|
return ax;
|
||||||
|
|
||||||
badframe:
|
badframe:
|
||||||
signal_fault(regs, frame, "rt sigreturn");
|
signal_fault(regs, frame, "rt_sigreturn");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
asmlinkage int sys_rt_sigreturn(unsigned long __unused)
|
||||||
|
{
|
||||||
|
struct pt_regs *regs = (struct pt_regs *)&__unused;
|
||||||
|
|
||||||
|
return do_rt_sigreturn(regs);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up a signal frame.
|
* Set up a signal frame.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -104,11 +104,11 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
static long do_rt_sigreturn(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct rt_sigframe __user *frame;
|
struct rt_sigframe __user *frame;
|
||||||
sigset_t set;
|
|
||||||
unsigned long ax;
|
unsigned long ax;
|
||||||
|
sigset_t set;
|
||||||
|
|
||||||
frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long));
|
frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long));
|
||||||
if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
|
if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
|
||||||
@@ -131,10 +131,15 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
|||||||
return ax;
|
return ax;
|
||||||
|
|
||||||
badframe:
|
badframe:
|
||||||
signal_fault(regs, frame, "sigreturn");
|
signal_fault(regs, frame, "rt_sigreturn");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
return do_rt_sigreturn(regs);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up a signal frame.
|
* Set up a signal frame.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user