From: Geliang Tang <tanggeliang@kylinos.cn>
Fix mptcp_join.sh (22) and packetdrill errors reported by CI.
Move sk_stream_memory_free check before "send_info[backup].ssk = ssk".
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
net/mptcp/protocol.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index f36e63b84b88..2ae9b8012dcd 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1444,8 +1444,7 @@ struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk)
trace_mptcp_subflow_get_send(subflow);
ssk = mptcp_subflow_tcp_sock(subflow);
- if (!mptcp_subflow_active(subflow) ||
- !sk_stream_memory_free(ssk))
+ if (!mptcp_subflow_active(subflow))
continue;
tout = max(tout, mptcp_timeout_from_subflow(subflow));
@@ -1461,6 +1460,8 @@ struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk)
linger_time = div_u64((u64)READ_ONCE(ssk->sk_wmem_queued) << 32, pace);
if (linger_time < send_info[backup].linger_time) {
+ if (!sk_stream_memory_free(ssk))
+ continue;
send_info[backup].ssk = ssk;
send_info[backup].linger_time = linger_time;
}
--
2.45.2