Re: SACK bug in 2.1.91, captured from start of session

David S. Miller (davem@dm.cobaltmicro.com)
Sun, 29 Mar 1998 19:52:55 -0800


Fixed:

--- net/ipv4/tcp_input.c.~1~ Sun Mar 29 00:56:59 1998
+++ net/ipv4/tcp_input.c Sun Mar 29 19:52:08 1998
@@ -1326,9 +1326,13 @@
int num_sacks = tp->num_sacks;
int this_sack;

- /* We know this removed SKB will eat from the front of a SACK. */
+ /* This is an in order data segment _or_ an out-of-order SKB being
+ * moved to the receive queue, so we know this removed SKB will eat
+ * from the front of a SACK.
+ */
for(this_sack = 0; this_sack < num_sacks; this_sack++, sp++) {
- if(sp->start_seq == TCP_SKB_CB(skb)->seq)
+ if(!after(sp->start_seq, TCP_SKB_CB(skb)->seq) &&
+ before(sp->start_seq, TCP_SKB_CB(skb)->end_seq))
break;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu