Merge branches 'work.misc' and 'work.dcache' of git://git.kernel.org/pub/scm/linux...
[sfrench/cifs-2.6.git] / arch / mips / kernel / signal_n32.c
index b672cebb4a1a507144cfc85964e4b39ac5ee70fa..8f65aaf9206d1ba88ab0f68e580eb176aacd173e 100644 (file)
@@ -64,13 +64,15 @@ struct rt_sigframe_n32 {
        struct ucontextn32 rs_uc;
 };
 
-asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
+asmlinkage void sysn32_rt_sigreturn(void)
 {
        struct rt_sigframe_n32 __user *frame;
+       struct pt_regs *regs;
        sigset_t set;
        int sig;
 
-       frame = (struct rt_sigframe_n32 __user *) regs.regs[29];
+       regs = current_pt_regs();
+       frame = (struct rt_sigframe_n32 __user *)regs->regs[29];
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
        if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask))
@@ -78,7 +80,7 @@ asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
 
        set_current_blocked(&set);
 
-       sig = restore_sigcontext(&regs, &frame->rs_uc.uc_mcontext);
+       sig = restore_sigcontext(regs, &frame->rs_uc.uc_mcontext);
        if (sig < 0)
                goto badframe;
        else if (sig)
@@ -93,8 +95,8 @@ asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
        __asm__ __volatile__(
                "move\t$29, %0\n\t"
                "j\tsyscall_exit"
-               :/* no outputs */
-               :"r" (&regs));
+               : /* no outputs */
+               : "r" (regs));
        /* Unreached */
 
 badframe: