mirror of
https://github.com/torvalds/linux.git
synced 2026-09-11 20:13:02 +02:00
mptcp: avoid pruning for OoW data
Pruning is expansive and destructive, do it only when we expect
to accept the skb triggering the cleanup.
Fixes: e468d37118 ("mptcp: implemented OoO queue pruning")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260908-net-mptcp-misc-fixes-7-3-rc1-v2-15-df1de70348b6@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a4257a91af
commit
f01b827574
|
|
@ -313,12 +313,6 @@ static void mptcp_data_queue_ofo(struct mptcp_sock *msk, struct sk_buff *skb)
|
|||
u64 seq, end_seq, max_seq;
|
||||
struct sk_buff *skb1;
|
||||
|
||||
if (!mptcp_try_rmem_schedule(sk, skb)) {
|
||||
MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RCVPRUNED);
|
||||
mptcp_drop(sk, skb);
|
||||
return;
|
||||
}
|
||||
|
||||
seq = MPTCP_SKB_CB(skb)->map_seq;
|
||||
end_seq = MPTCP_SKB_CB(skb)->end_seq;
|
||||
max_seq = atomic64_read(&msk->rcv_wnd_sent);
|
||||
|
|
@ -335,6 +329,12 @@ static void mptcp_data_queue_ofo(struct mptcp_sock *msk, struct sk_buff *skb)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!mptcp_try_rmem_schedule(sk, skb)) {
|
||||
MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RCVPRUNED);
|
||||
mptcp_drop(sk, skb);
|
||||
return;
|
||||
}
|
||||
|
||||
p = &msk->out_of_order_queue.rb_node;
|
||||
MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_OFOQUEUE);
|
||||
if (RB_EMPTY_ROOT(&msk->out_of_order_queue)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user