sigset_t set;
        int r0;
 
+        /* Always make any pending restarted system calls return -EINTR */
+       current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
 
        sigset_t set;
        int r0;
 
+       /* Always make any pending restarted system calls return -EINTR */
+       current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
 
 
        sigset_t set;
        long long ret;
 
+       /* Always make any pending restarted system calls return -EINTR */
+       current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
 
        stack_t __user st;
        long long ret;
 
+       /* Always make any pending restarted system calls return -EINTR */
+       current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
 
                 * On SH5 all edited pointers are subject to NEFF
                 */
                DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
-                               (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
+                       (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
        } else {
                /*
                 * Different approach on SH5.
                 */
                DEREF_REG_PR = (unsigned long) frame->retcode | 0x01;
                DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
-                               (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
+                       (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 
                if (__copy_to_user(frame->retcode,
                        (unsigned long long)sa_default_restorer & (~1), 16) != 0)
         */
        regs->regs[REG_SP] = (unsigned long) frame;
        regs->regs[REG_SP] = (regs->regs[REG_SP] & NEFF_SIGN) ?
-                        (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
+                (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
        regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
 
         /* FIXME:
                 * On SH5 all edited pointers are subject to NEFF
                 */
                DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
-                               (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
+                       (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
        } else {
                /*
                 * Different approach on SH5.
 
                DEREF_REG_PR = (unsigned long) frame->retcode | 0x01;
                DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
-                               (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
+                       (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 
                if (__copy_to_user(frame->retcode,
                        (unsigned long long)sa_default_rt_restorer & (~1), 16) != 0)
         */
        regs->regs[REG_SP] = (unsigned long) frame;
        regs->regs[REG_SP] = (regs->regs[REG_SP] & NEFF_SIGN) ?
-                        (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
+                (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
        regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
        regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->info;
        regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext;