From 135133d94735cca7c34f81eb4c835778a1afd7a7 Mon Sep 17 00:00:00 2001 From: Paolo Abeni Date: Fri, 9 Aug 2024 12:54:50 +0200 Subject: [PATCH] mptcp: fix NL PM announced address accounting commit 4b317e0eb287bd30a1b329513531157c25e8b692 upstream. Currently the per connection announced address counter is never decreased. As a consequence, after connection establishment, if the NL PM deletes an endpoint and adds a new/different one, no additional subflow is created for the new endpoint even if the current limits allow that. Address the issue properly updating the signaled address counter every time the NL PM removes such addresses. Fixes: 01cacb00b35c ("mptcp: add netlink-based PM") Cc: stable@vger.kernel.org Signed-off-by: Paolo Abeni Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) Signed-off-by: David S. Miller [ Conflicts in pm_netlink.c, because the commit 06faa2271034 ("mptcp: remove multi addresses and subflows in PM") is not in this version. Only the modification in mptcp_pm_remove_anno_addr() is then needed. ] Signed-off-by: Matthieu Baerts (NGI0) Signed-off-by: Greg Kroah-Hartman --- net/mptcp/pm_netlink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 452c7e21b..7f4d84f51 100755 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -759,6 +759,7 @@ static bool mptcp_pm_remove_anno_addr(struct mptcp_sock *msk, ret = remove_anno_list_by_saddr(msk, addr); if (ret || force) { spin_lock_bh(&msk->pm.lock); + msk->pm.add_addr_signaled -= ret; mptcp_pm_remove_addr(msk, addr->id); spin_unlock_bh(&msk->pm.lock); }