diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 2d450865937d5..868c76cf0f150 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1726,8 +1726,11 @@ static struct sock *mptcp_subflow_get_retrans(const struct mptcp_sock *msk) continue; /* still data outstanding at TCP level? Don't retransmit. */ - if (!tcp_write_queue_empty(ssk)) + if (!tcp_write_queue_empty(ssk)) { + if (inet_csk(ssk)->icsk_ca_state >= TCP_CA_Loss) + continue; return NULL; + } if (subflow->backup) { if (!backup)