Re: Bug: retry of clone() on Alpha can result in zeroed process thread pointer

From: Richard Henderson (rth@xxxxxxxxxxx)
Date: Wed Jul 30 2014 - 13:56:09 EST


On 07/29/2014 06:51 PM, Michael Cree wrote:
> On Tue, Jul 29, 2014 at 12:23:45PM -1000, Richard Henderson wrote:
>> I don't think this will help, but it's worth a test, prior to totally
>> re-writing entry.S. There's a chance of confusion of the value of regs->r0 if
>> there is in fact no error.
>
> No, it did not help. The glibc nptl/tst-eintr3 test still occassionally
> sefgaults and that is occurring because rduniq returned a NULL pointer.

Another try.


r~



diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index 6cec288..2d6c0e4 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -518,6 +518,7 @@ do_signal
case ERESTART_RESTARTBLOCK:
/* Set v0 to the restart_syscall and replay */
regs->r0 = __NR_restart_syscall;
+ regs->r19 = r19;
regs->pc -= 4;
break;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-alpha" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html