diff --git a/arch/mips/kernel/irixsig.c b/arch/mips/kernel/irixsig.c index 052ea15f1e800ac8627d6aa4f68ca965ed8232fb..719364752e7758c3b936203951d4dcd8b5e2f149 100644 --- a/arch/mips/kernel/irixsig.c +++ b/arch/mips/kernel/irixsig.c @@ -224,6 +224,7 @@ void do_irix_signal(struct pt_regs *regs) regs->regs[7] = regs->regs[26]; regs->cp0_epc -= 4; } + regs->regs[0] = 0; /* Don't deal with this again. */ } /* diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index 56bf42911336b696bb3da697741bb5be992224b6..b9d358e052144bb501956da1afca37553ab58394 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c @@ -429,7 +429,6 @@ void do_signal(struct pt_regs *regs) else oldset = ¤t->blocked; - signr = get_signal_to_deliver(&info, &ka, regs, NULL); if (signr > 0) { /* Whee! Actually deliver the signal. */ @@ -464,6 +463,7 @@ void do_signal(struct pt_regs *regs) regs->regs[7] = regs->regs[26]; regs->cp0_epc -= 4; } + regs->regs[0] = 0; /* Don't deal with this again. */ } /* diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index 282e85a7bae17bb399c104b382ad3f6405cc3b06..c86a5ddff050a78661eced6ca74a68b5358b5187 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c @@ -854,6 +854,7 @@ void do_signal32(struct pt_regs *regs) regs->regs[7] = regs->regs[26]; regs->cp0_epc -= 4; } + regs->regs[0] = 0; /* Don't deal with this again. */ } /*