FAILED: patch "[PATCH] mptcp: pm: ADD_ADDR rtx: always decrease sk refcount" failed to apply to 6.1-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.1-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-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 9634cb35af17019baec21ca648516ce376fa10e6
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026051231-fester-hedge-8062@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9634cb35af17019baec21ca648516ce376fa10e6 Mon Sep 17 00:00:00 2001
From: "Matthieu Baerts (NGI0)" <[email protected]>
Date: Tue, 5 May 2026 17:00:52 +0200
Subject: [PATCH] mptcp: pm: ADD_ADDR rtx: always decrease sk refcount
When an ADD_ADDR is retransmitted, the sk is held in sk_reset_timer(). It should then be released in all cases at the end.
Some (unlikely) checks were returning directly instead of calling sock_put() to decrease the refcount. Jump to a new 'exit' label to call __sock_put() (which will become sock_put() in the next commit) to fix this potential leak.
While at it, drop the '!msk' check which cannot happen because it is never reset, and explicitly mark the remaining one as "unlikely".
net/mptcp/pm.c +3 -5
@@ -331,11 +331,8 @@ static void mptcp_pm_add_timer(struct timer_list *timer)pr_debug ("msk=%p\n" , msk); -if (!msk) -return ; - -if (inet_sk_state_load (sk) ==TCP_CLOSE ) -return ; +if (unlikely (inet_sk_state_load (sk) ==TCP_CLOSE )) + goto exit;bh_lock_sock (sk);if (sock_owned_by_user (sk)) {
@@ -373,6 +370,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer) out:bh_unlock_sock (sk); +exit:__sock_put (sk); }
Sasha Levin
maintainerPATCH 1/1 mptcp: pm: ADD_ADDR rtx: always decrease sk refcount
From: "Matthieu Baerts (NGI0)" <[email protected]>
[ Upstream commit 9634cb35af17019baec21ca648516ce376fa10e6 ]
When an ADD_ADDR is retransmitted, the sk is held in sk_reset_timer(). It should then be released in all cases at the end.
Some (unlikely) checks were returning directly instead of calling sock_put() to decrease the refcount. Jump to a new 'exit' label to call __sock_put() (which will become sock_put() in the next commit) to fix this potential leak.
While at it, drop the '!msk' check which cannot happen because it is never reset, and explicitly mark the remaining one as "unlikely".
--- net/mptcp/pm_netlink.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
net/mptcp/pm_netlink.c +2 -5
@@ -309,11 +309,8 @@ static void mptcp_pm_add_timer(struct timer_list *timer)pr_debug ("msk=%p\n" , msk); -if (!msk) -return ; - -if (inet_sk_state_load (sk) ==TCP_CLOSE ) -return ; +if (unlikely (inet_sk_state_load (sk) ==TCP_CLOSE )) + goto out;if (!entry->addr.id)return ;
Signature · 1 line
2.53.0
Matthieu Baerts
maintainerRe: [PATCH 6.1.y] mptcp: pm: ADD_ADDR rtx: always decrease sk refcount
Hi Sasha,
Quoted 15 lines · Sasha Levin
From: "Matthieu Baerts (NGI0)" <[email protected]>
[ Upstream commit
9634cb35af17019baec21ca648516ce376fa10e6]When an
ADD_ADDRis retransmitted, the sk is held insk_reset_timer(). It should then be released in all cases at the end.Some (unlikely) checks were returning directly instead of calling
sock_put()to decrease the refcount. Jump to a new 'exit' label to call__sock_put()(which will becomesock_put()in the next commit) to fix this potential leak.While at it, drop the '!msk' check which cannot happen because it is never reset, and explicitly mark the remaining one as "unlikely".
Quoted 7 lines
Fixes 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout")Reviewed-by Mat Martineau <[email protected]>Signed-off-by Matthieu Baerts (NGI0) <[email protected]>Signed-off-by Jakub Kicinski <[email protected]>[ reused existing `out:` label instead of introducing a new `exit:` label since stable's `out:` only does `__sock_put(sk)` ]
See my comment for the same patch for 6.6: this conflict shouldn't exist if "mptcp: pm: ADD_ADDR rtx: fix potential data-race" you sent earlier is applied first.
Cheers,
Matt
Signature · 1 line
Sponsored by the NGI0 Core fund.