]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Jun 2026 04:38:03 +0000 (10:08 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Jun 2026 04:38:03 +0000 (10:08 +0530)
added patches:
mptcp-fix-missing-wakeups-in-edge-scenarios.patch

queue-6.12/mptcp-fix-missing-wakeups-in-edge-scenarios.patch [new file with mode: 0644]
queue-6.12/series

diff --git a/queue-6.12/mptcp-fix-missing-wakeups-in-edge-scenarios.patch b/queue-6.12/mptcp-fix-missing-wakeups-in-edge-scenarios.patch
new file mode 100644 (file)
index 0000000..a186c88
--- /dev/null
@@ -0,0 +1,47 @@
+From stable+bounces-263536-greg=kroah.com@vger.kernel.org Tue Jun 16 09:29:26 2026
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 15 Jun 2026 23:59:17 -0400
+Subject: mptcp: fix missing wakeups in edge scenarios
+To: stable@vger.kernel.org
+Cc: Paolo Abeni <pabeni@redhat.com>, "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20260616035917.2802898-1-sashal@kernel.org>
+
+From: Paolo Abeni <pabeni@redhat.com>
+
+[ Upstream commit 9d8d28738f24b75616d6ca7a27cb4aed88520343 ]
+
+The mptcp_recvmsg() can fill MPTCP socket receive queue via
+mptcp_move_skbs(), but currently does not try to wakeup any listener,
+because the same process is going to check the receive queue soon.
+
+When multiple threads are reading from the same fd, the above can
+cause stall. Add the missing wakeup.
+
+Fixes: 6771bfd9ee24 ("mptcp: update mptcp ack sequence from work queue")
+Cc: stable@vger.kernel.org
+Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Link: https://patch.msgid.link/20260602-net-mptcp-misc-fixes-7-1-rc7-v2-1-856831229976@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/mptcp/protocol.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/net/mptcp/protocol.c
++++ b/net/mptcp/protocol.c
+@@ -2242,7 +2242,11 @@ static bool __mptcp_move_skbs(struct mpt
+       }
+       if (ret)
+               mptcp_check_data_fin((struct sock *)msk);
+-      return !skb_queue_empty(&msk->receive_queue);
++
++      ret = !skb_queue_empty(&msk->receive_queue);
++      if (ret && mptcp_epollin_ready(sk))
++              sk->sk_data_ready(sk);
++      return ret;
+ }
+ static unsigned int mptcp_inq_hint(const struct sock *sk)
index 64d8217c094279afc679dd294c725a814a12fd1f..8528b2164e4b0b307bcfaf46299832ba2427d70c 100644 (file)
@@ -241,3 +241,4 @@ rdma-umem-fix-kernel-doc-warnings.patch
 rdma-move-dma-block-iterator-logic-into-dedicated-files.patch
 rdma-umem-fix-truncation-for-block-sizes-4g.patch
 mm-hugetlb-avoid-false-positive-lockdep-assertion.patch
+mptcp-fix-missing-wakeups-in-edge-scenarios.patch