diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index f768aa4473fb..79b3fd34e136 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2575,6 +2575,10 @@ static void __mptcp_close_subflow(struct sock *sk) continue; mptcp_close_ssk(sk, ssk, subflow); + + if (READ_ONCE(subflow->remote_id) && + --msk->pm.add_addr_accepted < mptcp_pm_get_add_addr_accept_max(msk)) + WRITE_ONCE(msk->pm.accept_addr, true); } }