diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 52aeeca292b7..ec6be2d421aa 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2590,6 +2590,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); } }