diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2008-12-06 01:41:06 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-06 01:41:06 -0500 |
commit | 9969ca5f205988fb96461075cb4914c55cf166b5 (patch) | |
tree | 8f7c0b3102044f09f9eb85d945ce818eec19e309 | |
parent | f0bc52f38b09308fca85f3aa9300a341364fe9c6 (diff) |
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 <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/tcp_input.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 63c3ef6d4a1c..33902f6799c3 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, | |||
1481 | 1481 | ||
1482 | /* Normally R but no L won't result in plain S */ | 1482 | /* Normally R but no L won't result in plain S */ |
1483 | if (!dup_sack && | 1483 | if (!dup_sack && |
1484 | (TCP_SKB_CB(skb)->sacked & TCPCB_TAGBITS) == TCPCB_SACKED_RETRANS) | 1484 | (TCP_SKB_CB(skb)->sacked & (TCPCB_LOST|TCPCB_SACKED_RETRANS)) == TCPCB_SACKED_RETRANS) |
1485 | goto fallback; | 1485 | goto fallback; |
1486 | if (!skb_can_shift(skb)) | 1486 | if (!skb_can_shift(skb)) |
1487 | goto fallback; | 1487 | goto fallback; |