The following makes path MTU work again, thanks to everyone with the
incredible reporting on that bug. The other change is a fix for fast
retransmits by Eric Schenk.
--- linux/net/ipv4/tcp.c.~3~ Mon Mar 3 09:52:42 1997
+++ linux/net/ipv4/tcp.c Tue Mar 4 05:07:51 1997
@@ -731,7 +731,7 @@
if (len < 8) /* NOT sizeof(struct tcphdr) */
return;
- sk = tcp_v4_lookup(iph->saddr, th->source, iph->daddr, th->dest);
+ sk = tcp_v4_lookup(saddr, th->source, daddr, th->dest);
if (sk == NULL)
return;
--- linux/net/ipv4/tcp_input.c.~2~ Mon Mar 3 09:08:35 1997
+++ linux/net/ipv4/tcp_input.c Tue Mar 4 05:28:13 1997
@@ -888,7 +888,7 @@
if (sk->rcv_ack_seq == ack
&& sk->window_seq == window_seq
- && len != th->doff*4
+ && len == th->doff*4
&& before(ack, sk->sent_seq)
&& after(ack, sk->high_seq))
{