From: Ilpo Järvinen Date: Sat, 6 Dec 2008 06:41:06 +0000 (-0800) Subject: tcp: Fix thinko making the not-shiftable to cover S|R as well X-Git-Tag: v2.6.29-rc1~581^2~300 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=9969ca5f205988fb96461075cb4914c55cf166b5;p=~emulex%2Finfiniband.git tcp: Fix thinko making the not-shiftable to cover S|R as well S|R won't result in S if just SACK is received. DSACK is another story (but it is covered correctly already). Signed-off-by: Ilpo Järvinen Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 63c3ef6d4a1..33902f6799c 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -1481,7 +1481,7 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb, /* Normally R but no L won't result in plain S */ if (!dup_sack && - (TCP_SKB_CB(skb)->sacked & TCPCB_TAGBITS) == TCPCB_SACKED_RETRANS) + (TCP_SKB_CB(skb)->sacked & (TCPCB_LOST|TCPCB_SACKED_RETRANS)) == TCPCB_SACKED_RETRANS) goto fallback; if (!skb_can_shift(skb)) goto fallback;