FAILED: patch "[PATCH] mptcp: pm: re-using ID of unused flushed subflows" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x ef34a6ea0cab1800f4b3c9c3c2cefd5091e03379
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024082642-google-strongman-27a7@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
ef34a6ea0cab ("mptcp: pm: re-using ID of unused flushed subflows")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From ef34a6ea0cab1800f4b3c9c3c2cefd5091e03379 Mon Sep 17 00:00:00 2001
From: "Matthieu Baerts (NGI0)" <[email protected]>
Date: Mon, 19 Aug 2024 21:45:23 +0200
Subject: [PATCH] mptcp: pm: re-using ID of unused flushed subflows
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.
net/mptcp/pm_netlink.c +7 -0
@@ -1623,8 +1623,15 @@ static void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,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,
Matthieu Baerts (NGI0)
maintainerPATCH 1/1 mptcp: pm: re-using ID of unused flushed subflows
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.
[ No conflicts, but the line modifying msk->pm.id_avail_bitmap has been
removed, as it is not in this version, introduced later in commit 86e39e04482b ("mptcp: keep track of local endpoint still available for each msk") and depending on other ones. The best we can do in this version is to reset local_addr_used counter, better than nothing. ]
--- net/mptcp/pm_netlink.c | 6 ++++++ 1 file changed, 6 insertions(+)
net/mptcp/pm_netlink.c +6 -0
@@ -1498,8 +1498,14 @@ static void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,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); + msk->pm.local_addr_used =0 ; +spin_unlock_bh (&msk->pm.lock); } static void mptcp_nl_remove_addrs_list(struct net *net,
Signature · 1 line
2.45.2
Greg KH
maintainerRe: [PATCH 5.15.y] mptcp: pm: re-using ID of unused flushed subflows
Quoted 2 lines · On Fri, Sep 06, 2024 at 10:28:54AM +0200, Matthieu Baerts (NGI0) wrote:
commit
ef34a6ea0cab1800f4b3c9c3c2cefd5091e03379upstream.
I think I've got all of these now, thanks!
greg k-h
Patch "mptcp: pm: re-using ID of unused flushed subflows" has been added to the 5.15-stable tree
In reply to Matthieu Baerts (NGI0)This is a note to let you know that I've just added the patch titled
mptcp: pm: re-using ID of unused flushed subflows
to the 5.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mptcp-pm-re-using-id-of-unused-flushed-subflows.patch
and it can be found in the queue-5.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
From [email protected] Fri Sep 6 10:29:13 2024
From: "Matthieu Baerts (NGI0)" <[email protected]>
Date: Fri, 6 Sep 2024 10:28:54 +0200
Subject: mptcp: pm: re-using ID of unused flushed subflows
To: [email protected], [email protected]
Cc: MPTCP Upstream <[email protected]>, "Matthieu Baerts (NGI0)" <[email protected]>, Mat Martineau <[email protected]>, Jakub Kicinski <[email protected]>
Message-ID: <[email protected]>
From: "Matthieu Baerts (NGI0)" <[email protected]>
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.
[ No conflicts, but the line modifying msk->pm.id_avail_bitmap has been
removed, as it is not in this version, introduced later in commit 86e39e04482b ("mptcp: keep track of local endpoint still available for each msk") and depending on other ones. The best we can do in this version is to reset local_addr_used counter, better than nothing. ]
--- net/mptcp/pm_netlink.c | 6 ++++++ 1 file changed, 6 insertions(+)
net/mptcp/pm_netlink.c +6 -0
@@ -1498,8 +1498,14 @@ static void mptcp_pm_remove_addrs_and_sumptcp_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); + msk->pm.local_addr_used =0 ; +spin_unlock_bh (&msk->pm.lock); } static void mptcp_nl_remove_addrs_list(struct net *net,
Patches currently in stable-queue which might be from [email protected] are
queue-5.15/mptcp-pm-avoid-possible-uaf-when-selecting-endp.patch queue-5.15/mptcp-pm-only-decrement-add_addr_accepted-for-mpj-req.patch queue-5.15/mptcp-pm-fullmesh-select-the-right-id-later.patch queue-5.15/mptcp-pm-skip-connecting-to-already-established-sf.patch queue-5.15/mptcp-pm-re-using-id-of-unused-flushed-subflows.patch queue-5.15/mptcp-pm-add_addr-0-is-not-a-new-address.patch queue-5.15/mptcp-constify-a-bunch-of-of-helpers.patch queue-5.15/mptcp-pm-do-not-remove-already-closed-subflows.patch queue-5.15/mptcp-pr_debug-add-missing-n-at-the-end.patch queue-5.15/mptcp-pm-check-add_addr_accept_max-before-accepting-new-add_addr.patch queue-5.15/mptcp-close-subflow-when-receiving-tcp-fin.patch queue-5.15/mptcp-avoid-duplicated-sub_closed-events.patch queue-5.15/mptcp-pm-send-ack-on-an-active-subflow.patch