|
@@ -92,7 +92,6 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall)
|
|
unsigned long usp = (regs->gr[30] & ~(0x01UL));
|
|
unsigned long usp = (regs->gr[30] & ~(0x01UL));
|
|
unsigned long sigframe_size = PARISC_RT_SIGFRAME_SIZE;
|
|
unsigned long sigframe_size = PARISC_RT_SIGFRAME_SIZE;
|
|
#ifdef CONFIG_64BIT
|
|
#ifdef CONFIG_64BIT
|
|
- compat_sigset_t compat_set;
|
|
|
|
struct compat_rt_sigframe __user * compat_frame;
|
|
struct compat_rt_sigframe __user * compat_frame;
|
|
|
|
|
|
if (is_compat_task())
|
|
if (is_compat_task())
|
|
@@ -113,9 +112,8 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall)
|
|
|
|
|
|
if (is_compat_task()) {
|
|
if (is_compat_task()) {
|
|
DBG(2,"sys_rt_sigreturn: ELF32 process.\n");
|
|
DBG(2,"sys_rt_sigreturn: ELF32 process.\n");
|
|
- if (__copy_from_user(&compat_set, &compat_frame->uc.uc_sigmask, sizeof(compat_set)))
|
|
|
|
|
|
+ if (get_compat_sigset(&set, &compat_frame->uc.uc_sigmask))
|
|
goto give_sigsegv;
|
|
goto give_sigsegv;
|
|
- sigset_32to64(&set,&compat_set);
|
|
|
|
} else
|
|
} else
|
|
#endif
|
|
#endif
|
|
{
|
|
{
|
|
@@ -237,7 +235,6 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
|
|
int err = 0;
|
|
int err = 0;
|
|
#ifdef CONFIG_64BIT
|
|
#ifdef CONFIG_64BIT
|
|
struct compat_rt_sigframe __user * compat_frame;
|
|
struct compat_rt_sigframe __user * compat_frame;
|
|
- compat_sigset_t compat_set;
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
usp = (regs->gr[30] & ~(0x01UL));
|
|
usp = (regs->gr[30] & ~(0x01UL));
|
|
@@ -260,8 +257,8 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
|
|
DBG(1,"setup_rt_frame: frame->uc.uc_mcontext = 0x%p\n", &compat_frame->uc.uc_mcontext);
|
|
DBG(1,"setup_rt_frame: frame->uc.uc_mcontext = 0x%p\n", &compat_frame->uc.uc_mcontext);
|
|
err |= setup_sigcontext32(&compat_frame->uc.uc_mcontext,
|
|
err |= setup_sigcontext32(&compat_frame->uc.uc_mcontext,
|
|
&compat_frame->regs, regs, in_syscall);
|
|
&compat_frame->regs, regs, in_syscall);
|
|
- sigset_64to32(&compat_set,set);
|
|
|
|
- err |= __copy_to_user(&compat_frame->uc.uc_sigmask, &compat_set, sizeof(compat_set));
|
|
|
|
|
|
+ err |= put_compat_sigset(&compat_frame->uc.uc_sigmask, set,
|
|
|
|
+ sizeof(compat_sigset_t));
|
|
} else
|
|
} else
|
|
#endif
|
|
#endif
|
|
{
|
|
{
|