Re: Linux 2.6.0-test9

From: Linus Torvalds
Date: Sun Oct 26 2003 - 19:22:49 EST



On Sun, 26 Oct 2003, Andrew Morton wrote:
>
> Can someone show us the diff for this?

There's only one change to tcp.c after -test8: it's

kuznet@xxxxxxxxxxxxx:
TCP: do not return -EINTR, when data are available for read()

and I think it should just be reverted: the changeset even removes the
comment that clearly says:

/* We need to check signals first, to get correct SIGURG
* handling. FIXME: Need to check this doesn't impact 1003.1g
* and move it down to the bottom of the loop
*/

And Alexey apparently tried to do the "FIXME" part, but without thinking
about the SIGURG part.

We _need_ to stop at urgent data and we _should_ return -EINTR, and let
the SIGURG handler do the URG read. Otherwise we'll lose urgent data (or
we'll just read it inline without realizing that it was urgent data).

I don't know anybody sane who uses urgent data (telnet and rlogin do, I
don't know if they count as sane any more), but it does look like that
patch totally broke it.

I'd revert it myself, but since the networking code is fairly well
maintained, I'll just wait for David and Alexey to weigh in, and tell me
that I'm a total moron and I overlooked something. But I don't think I
missed anything.

Andries, what was the situation that led to a TCP lockup? I don't see
anything but URG being broken by that patch, so it would be good to verify
that your breakage really was URG, to see that it's totally understood..

Linus

-
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/