Re: PATCH - x86-64 signed-compare bug, was Re: select() setting ERESTARTNOHAND (514).

From: Andi Kleen
Date: Wed Jan 10 2007 - 19:41:14 EST


On Thursday 11 January 2007 01:37, Neil Brown wrote:
> On Wednesday January 10, jafo@xxxxxxxxx wrote:
> >
> > In looking at the Linux code for ERESTARTNOHAND, I see that
> > include/linux/errno.h says this errno should never make it to the user.
> > However, in this instance we ARE seeing it. Looking around on google shows
> > others are seeing it as well, though hits are few.
> ..
> >
> > Thoughts?
>
> Just a 'me too' at this point.
> The X server on my shiny new notebook (Core 2 Duo) occasionally dies
> with 'select' repeatedly returning ERESTARTNOHAND. It is most
> annoying!

Normally it should be only visible in strace. Did you see it without
strace?

>
> You don't mention in the Email which kernel version you use but I see
> from the web page you reference it is 2.6.19.1. I'm using
> 2.6.18.something.
>
> I thought I'd have a quick look at the code, comparing i386 to x86-64
> and guess what I found.....
>
> On x86-64, regs->rax is "unsigned long", so the following is
> needed....

regs->rax is unsigned long.
I don't think your patch will make any difference. What do you think
it will change?

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/