+++ /dev/null
-From ef34a6ea0cab1800f4b3c9c3c2cefd5091e03379 Mon Sep 17 00:00:00 2001
-From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
-Date: Mon, 19 Aug 2024 21:45:23 +0200
-Subject: mptcp: pm: re-using ID of unused flushed subflows
-
-From: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-
-commit ef34a6ea0cab1800f4b3c9c3c2cefd5091e03379 upstream.
-
-If no subflows are attached to the 'subflow' endpoints that are being
-flushed, the corresponding addr IDs will not be marked as available
-again.
-
-Mark all ID as being available when flushing all the 'subflow'
-endpoints, and reset local_addr_used counter to cover these cases.
-
-Note that mptcp_pm_remove_addrs_and_subflows() helper is only called for
-flushing operations, not to remove a specific set of addresses and
-subflows.
-
-Fixes: 06faa2271034 ("mptcp: remove multi addresses and subflows in PM")
-Cc: stable@vger.kernel.org
-Reviewed-by: Mat Martineau <martineau@kernel.org>
-Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Link: https://patch.msgid.link/20240819-net-mptcp-pm-reusing-id-v1-5-38035d40de5b@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/mptcp/pm_netlink.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/net/mptcp/pm_netlink.c
-+++ b/net/mptcp/pm_netlink.c
-@@ -1501,8 +1501,15 @@ static void mptcp_pm_remove_addrs_and_su
- mptcp_pm_remove_addr(msk, &alist);
- spin_unlock_bh(&msk->pm.lock);
- }
-+
- if (slist.nr)
- mptcp_pm_remove_subflow(msk, &slist);
-+
-+ /* Reset counters: maybe some subflows have been removed before */
-+ spin_lock_bh(&msk->pm.lock);
-+ bitmap_fill(msk->pm.id_avail_bitmap, MPTCP_PM_MAX_ADDR_ID + 1);
-+ msk->pm.local_addr_used = 0;
-+ spin_unlock_bh(&msk->pm.lock);
- }
-
- static void mptcp_nl_remove_addrs_list(struct net *net,
+++ /dev/null
-From e255683c06df572ead96db5efb5d21be30c0efaa Mon Sep 17 00:00:00 2001
-From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
-Date: Mon, 19 Aug 2024 21:45:19 +0200
-Subject: mptcp: pm: re-using ID of unused removed ADD_ADDR
-
-From: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-
-commit e255683c06df572ead96db5efb5d21be30c0efaa upstream.
-
-If no subflow is attached to the 'signal' endpoint that is being
-removed, the addr ID will not be marked as available again.
-
-Mark the linked ID as available when removing the address entry from the
-list to cover this case.
-
-Fixes: b6c08380860b ("mptcp: remove addr and subflow in PM netlink")
-Cc: stable@vger.kernel.org
-Reviewed-by: Mat Martineau <martineau@kernel.org>
-Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Link: https://patch.msgid.link/20240819-net-mptcp-pm-reusing-id-v1-1-38035d40de5b@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/mptcp/pm_netlink.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/net/mptcp/pm_netlink.c
-+++ b/net/mptcp/pm_netlink.c
-@@ -1341,7 +1341,10 @@ static bool mptcp_pm_remove_anno_addr(st
- ret = remove_anno_list_by_saddr(msk, addr);
- if (ret || force) {
- spin_lock_bh(&msk->pm.lock);
-- msk->pm.add_addr_signaled -= ret;
-+ if (ret) {
-+ __set_bit(addr->id, msk->pm.id_avail_bitmap);
-+ msk->pm.add_addr_signaled--;
-+ }
- mptcp_pm_remove_addr(msk, &list);
- spin_unlock_bh(&msk->pm.lock);
- }