diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 08a72242428c03..7dbdc0485ef8f4 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); } }