]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Aug 2025 14:53:35 +0000 (16:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Aug 2025 14:53:35 +0000 (16:53 +0200)
added patches:
mptcp-disable-add_addr-retransmission-when-timeout-is-0.patch
mptcp-remove-duplicate-sk_reset_timer-call.patch
selftests-mptcp-pm-check-flush-doesn-t-reset-limits.patch

queue-6.6/mptcp-disable-add_addr-retransmission-when-timeout-is-0.patch [new file with mode: 0644]
queue-6.6/mptcp-remove-duplicate-sk_reset_timer-call.patch [new file with mode: 0644]
queue-6.6/selftests-mptcp-pm-check-flush-doesn-t-reset-limits.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/mptcp-disable-add_addr-retransmission-when-timeout-is-0.patch b/queue-6.6/mptcp-disable-add_addr-retransmission-when-timeout-is-0.patch
new file mode 100644 (file)
index 0000000..9e577d0
--- /dev/null
@@ -0,0 +1,98 @@
+From stable+bounces-172412-greg=kroah.com@vger.kernel.org Fri Aug 22 16:17:20 2025
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+Date: Fri, 22 Aug 2025 16:11:02 +0200
+Subject: mptcp: disable add_addr retransmission when timeout is 0
+To: mptcp@lists.linux.dev, stable@vger.kernel.org, gregkh@linuxfoundation.org
+Cc: Geliang Tang <tanggeliang@kylinos.cn>, sashal@kernel.org, Matthieu Baerts <matttbe@kernel.org>, Jakub Kicinski <kuba@kernel.org>
+Message-ID: <20250822141059.48927-7-matttbe@kernel.org>
+
+From: Geliang Tang <tanggeliang@kylinos.cn>
+
+commit f5ce0714623cffd00bf2a83e890d09c609b7f50a upstream.
+
+When add_addr_timeout was set to 0, this caused the ADD_ADDR to be
+retransmitted immediately, which looks like a buggy behaviour. Instead,
+interpret 0 as "no retransmissions needed".
+
+The documentation is updated to explicitly state that setting the timeout
+to 0 disables retransmission.
+
+Fixes: 93f323b9cccc ("mptcp: add a new sysctl add_addr_timeout")
+Cc: stable@vger.kernel.org
+Suggested-by: Matthieu Baerts <matttbe@kernel.org>
+Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
+Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Link: https://patch.msgid.link/20250815-net-mptcp-misc-fixes-6-17-rc2-v1-5-521fe9957892@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+[ Before commit e4c28e3d5c09 ("mptcp: pm: move generic PM helpers to
+  pm.c"), mptcp_pm_alloc_anno_list() was in pm_netlink.c. The same patch
+  can be applied there without conflicts. ]
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/networking/mptcp-sysctl.rst |    2 ++
+ net/mptcp/pm_netlink.c                    |   13 ++++++++++---
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+--- a/Documentation/networking/mptcp-sysctl.rst
++++ b/Documentation/networking/mptcp-sysctl.rst
+@@ -20,6 +20,8 @@ add_addr_timeout - INTEGER (seconds)
+       resent to an MPTCP peer that has not acknowledged a previous
+       ADD_ADDR message.
++      Do not retransmit if set to 0.
++
+       The default value matches TCP_RTO_MAX. This is a per-namespace
+       sysctl.
+--- a/net/mptcp/pm_netlink.c
++++ b/net/mptcp/pm_netlink.c
+@@ -294,6 +294,7 @@ static void mptcp_pm_add_timer(struct ti
+       struct mptcp_pm_add_entry *entry = from_timer(entry, timer, add_timer);
+       struct mptcp_sock *msk = entry->sock;
+       struct sock *sk = (struct sock *)msk;
++      unsigned int timeout;
+       pr_debug("msk=%p\n", msk);
+@@ -311,6 +312,10 @@ static void mptcp_pm_add_timer(struct ti
+               goto out;
+       }
++      timeout = mptcp_get_add_addr_timeout(sock_net(sk));
++      if (!timeout)
++              goto out;
++
+       spin_lock_bh(&msk->pm.lock);
+       if (!mptcp_pm_should_add_signal_addr(msk)) {
+@@ -322,7 +327,7 @@ static void mptcp_pm_add_timer(struct ti
+       if (entry->retrans_times < ADD_ADDR_RETRANS_MAX)
+               sk_reset_timer(sk, timer,
+-                             jiffies + mptcp_get_add_addr_timeout(sock_net(sk)));
++                             jiffies + timeout);
+       spin_unlock_bh(&msk->pm.lock);
+@@ -364,6 +369,7 @@ bool mptcp_pm_alloc_anno_list(struct mpt
+       struct mptcp_pm_add_entry *add_entry = NULL;
+       struct sock *sk = (struct sock *)msk;
+       struct net *net = sock_net(sk);
++      unsigned int timeout;
+       lockdep_assert_held(&msk->pm.lock);
+@@ -388,8 +394,9 @@ bool mptcp_pm_alloc_anno_list(struct mpt
+       timer_setup(&add_entry->add_timer, mptcp_pm_add_timer, 0);
+ reset_timer:
+-      sk_reset_timer(sk, &add_entry->add_timer,
+-                     jiffies + mptcp_get_add_addr_timeout(net));
++      timeout = mptcp_get_add_addr_timeout(net);
++      if (timeout)
++              sk_reset_timer(sk, &add_entry->add_timer, jiffies + timeout);
+       return true;
+ }
diff --git a/queue-6.6/mptcp-remove-duplicate-sk_reset_timer-call.patch b/queue-6.6/mptcp-remove-duplicate-sk_reset_timer-call.patch
new file mode 100644 (file)
index 0000000..86fbf54
--- /dev/null
@@ -0,0 +1,57 @@
+From stable+bounces-172411-greg=kroah.com@vger.kernel.org Fri Aug 22 16:15:31 2025
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+Date: Fri, 22 Aug 2025 16:11:01 +0200
+Subject: mptcp: remove duplicate sk_reset_timer call
+To: mptcp@lists.linux.dev, stable@vger.kernel.org, gregkh@linuxfoundation.org
+Cc: Geliang Tang <tanggeliang@kylinos.cn>, sashal@kernel.org, "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, Jakub Kicinski <kuba@kernel.org>
+Message-ID: <20250822141059.48927-6-matttbe@kernel.org>
+
+From: Geliang Tang <tanggeliang@kylinos.cn>
+
+commit 5d13349472ac8abcbcb94407969aa0fdc2e1f1be upstream.
+
+sk_reset_timer() was called twice in mptcp_pm_alloc_anno_list.
+
+Simplify the code by using a 'goto' statement to eliminate the
+duplication.
+
+Note that this is not a fix, but it will help backporting the following
+patch. The same "Fixes" tag has been added for this reason.
+
+Fixes: 93f323b9cccc ("mptcp: add a new sysctl add_addr_timeout")
+Cc: stable@vger.kernel.org
+Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
+Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Link: https://patch.msgid.link/20250815-net-mptcp-misc-fixes-6-17-rc2-v1-4-521fe9957892@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+[ Before commit e4c28e3d5c09 ("mptcp: pm: move generic PM helpers to
+  pm.c"), mptcp_pm_alloc_anno_list() was in pm_netlink.c. The same patch
+  can be applied there without conflicts. ]
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/mptcp/pm_netlink.c |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/net/mptcp/pm_netlink.c
++++ b/net/mptcp/pm_netlink.c
+@@ -373,9 +373,7 @@ bool mptcp_pm_alloc_anno_list(struct mpt
+               if (WARN_ON_ONCE(mptcp_pm_is_kernel(msk)))
+                       return false;
+-              sk_reset_timer(sk, &add_entry->add_timer,
+-                             jiffies + mptcp_get_add_addr_timeout(net));
+-              return true;
++              goto reset_timer;
+       }
+       add_entry = kmalloc(sizeof(*add_entry), GFP_ATOMIC);
+@@ -389,6 +387,7 @@ bool mptcp_pm_alloc_anno_list(struct mpt
+       add_entry->retrans_times = 0;
+       timer_setup(&add_entry->add_timer, mptcp_pm_add_timer, 0);
++reset_timer:
+       sk_reset_timer(sk, &add_entry->add_timer,
+                      jiffies + mptcp_get_add_addr_timeout(net));
diff --git a/queue-6.6/selftests-mptcp-pm-check-flush-doesn-t-reset-limits.patch b/queue-6.6/selftests-mptcp-pm-check-flush-doesn-t-reset-limits.patch
new file mode 100644 (file)
index 0000000..754a021
--- /dev/null
@@ -0,0 +1,50 @@
+From stable+bounces-172413-greg=kroah.com@vger.kernel.org Fri Aug 22 16:17:21 2025
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+Date: Fri, 22 Aug 2025 16:11:03 +0200
+Subject: selftests: mptcp: pm: check flush doesn't reset limits
+To: mptcp@lists.linux.dev, stable@vger.kernel.org, gregkh@linuxfoundation.org
+Cc: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, sashal@kernel.org, Mat Martineau <martineau@kernel.org>, Jakub Kicinski <kuba@kernel.org>
+Message-ID: <20250822141059.48927-8-matttbe@kernel.org>
+
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+
+commit 452690be7de2f91cc0de68cb9e95252875b33503 upstream.
+
+This modification is linked to the parent commit where the received
+ADD_ADDR limit was accidentally reset when the endpoints were flushed.
+
+To validate that, the test is now flushing endpoints after having set
+new limits, and before checking them.
+
+The 'Fixes' tag here below is the same as the one from the previous
+commit: this patch here is not fixing anything wrong in the selftests,
+but it validates the previous fix for an issue introduced by this commit
+ID.
+
+Fixes: 01cacb00b35c ("mptcp: add netlink-based 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/20250815-net-mptcp-misc-fixes-6-17-rc2-v1-3-521fe9957892@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+[ Conflicts in pm_netlink.sh, because some refactoring have been done
+  later on: commit 3188309c8ceb ("selftests: mptcp: netlink:
+  add 'limits' helpers") and commit c99d57d0007a ("selftests: mptcp: use
+  pm_nl endpoint ops") are not in this version. The same operation can
+  still be done at the same place, without using the new helper. ]
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/mptcp/pm_netlink.sh |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
++++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
+@@ -134,6 +134,7 @@ ip netns exec $ns1 ./pm_nl_ctl limits 1
+ check "ip netns exec $ns1 ./pm_nl_ctl limits" "$default_limits" "subflows above hard limit"
+ ip netns exec $ns1 ./pm_nl_ctl limits 8 8
++ip netns exec $ns1 ./pm_nl_ctl flush
+ check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 8
+ subflows 8" "set limits"
index efc6df1ec4a89b5b5c9d60dec10ef161cfd74514..392787df2c0263c159108928c690ef6de93d72c0 100644 (file)
@@ -502,3 +502,6 @@ arm64-dts-ti-k3-am62-main-remove-emmc-high-speed-ddr-support.patch
 smb-server-split-ksmbd_rdma_stop_listening-out-of-ks.patch
 fs-buffer-fix-use-after-free-when-call-bh_read-helpe.patch
 use-uniform-permission-checks-for-all-mount-propagat.patch
+mptcp-remove-duplicate-sk_reset_timer-call.patch
+mptcp-disable-add_addr-retransmission-when-timeout-is-0.patch
+selftests-mptcp-pm-check-flush-doesn-t-reset-limits.patch