mirror of https://gitee.com/openkylin/linux.git
[TCP]: Check num sacks in SACK fast path
We clear the unused parts of the SACK cache, This prevents us from mistakenly taking the cache data if the old data in the SACK cache is the same as the data in the SACK block. This assumes that we never receive an empty SACK block with start and end both at zero. Signed-off-by: Baruch Even <baruch@ev-en.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6f74651ae6
commit
8a3c3a9727
|
@ -998,6 +998,11 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
|
|||
tp->recv_sack_cache[i].start_seq = start_seq;
|
||||
tp->recv_sack_cache[i].end_seq = end_seq;
|
||||
}
|
||||
/* Clear the rest of the cache sack blocks so they won't match mistakenly. */
|
||||
for (; i < ARRAY_SIZE(tp->recv_sack_cache); i++) {
|
||||
tp->recv_sack_cache[i].start_seq = 0;
|
||||
tp->recv_sack_cache[i].end_seq = 0;
|
||||
}
|
||||
|
||||
first_sack_index = 0;
|
||||
if (flag)
|
||||
|
|
Loading…
Reference in New Issue