]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/sparc/kernel/signal_64.c
sparc: Prevent no-handler signal syscall restart recursion.
[net-next-2.6.git] / arch / sparc / kernel / signal_64.c
index 3f19e673e2cd58625c46a2ab8490235b9fa3a2ed..006fe4515886dc6ae2a7a8e6cc9b6df9c16fda46 100644 (file)
@@ -600,12 +600,14 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0)
                regs->u_regs[UREG_I0] = orig_i0;
                regs->tpc -= 4;
                regs->tnpc -= 4;
+               pt_regs_clear_syscall(regs);
        }
        if (restart_syscall &&
            regs->u_regs[UREG_I0] == ERESTART_RESTARTBLOCK) {
                regs->u_regs[UREG_G1] = __NR_restart_syscall;
                regs->tpc -= 4;
                regs->tnpc -= 4;
+               pt_regs_clear_syscall(regs);
        }
 
        /* If there's no signal to deliver, we just put the saved sigmask