]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop 1 patch based on RC review feedback
authorSasha Levin <sashal@kernel.org>
Tue, 14 Apr 2026 11:54:07 +0000 (07:54 -0400)
committerSasha Levin <sashal@kernel.org>
Tue, 14 Apr 2026 11:54:07 +0000 (07:54 -0400)
Dropped patches:

- "mptcp: fix soft lockup in mptcp_recvmsg()"
  Queues: 6.12, 6.6
  Reason: patch author (Li Xiasong) reports fix is not applicable — receive
          queue handling differs between mainline and 6.6/6.12 (msk->receive_queue
          vs sk->sk_receive_queue), making the backport incorrect
  Report: https://lore.kernel.org/stable/52ea906c-0953-4d2c-98ee-b873ecc6a075@huawei.com/
  Report: https://lore.kernel.org/stable/14313177-4f06-4666-9c74-7dd3ca797744@huawei.com/

queue-6.12/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch [deleted file]
queue-6.12/series
queue-6.6/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch [deleted file]
queue-6.6/series

diff --git a/queue-6.12/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch b/queue-6.12/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch
deleted file mode 100644 (file)
index 4ca5e7c..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From matttbe@kernel.org Thu Apr  9 13:45:18 2026
-From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
-Date: Thu,  9 Apr 2026 13:44:40 +0200
-Subject: mptcp: fix soft lockup in mptcp_recvmsg()
-To: stable@vger.kernel.org, gregkh@linuxfoundation.org, sashal@kernel.org
-Cc: MPTCP Upstream <mptcp@lists.linux.dev>, Li Xiasong <lixiasong1@huawei.com>, "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, Jakub Kicinski <kuba@kernel.org>
-Message-ID: <20260409114439.1158386-2-matttbe@kernel.org>
-
-From: Li Xiasong <lixiasong1@huawei.com>
-
-commit 5dd8025a49c268ab6b94d978532af3ad341132a7 upstream.
-
-syzbot reported a soft lockup in mptcp_recvmsg() [0].
-
-When receiving data with MSG_PEEK | MSG_WAITALL flags, the skb is not
-removed from the sk_receive_queue. This causes sk_wait_data() to always
-find available data and never perform actual waiting, leading to a soft
-lockup.
-
-Fix this by adding a 'last' parameter to track the last peeked skb.
-This allows sk_wait_data() to make informed waiting decisions and prevent
-infinite loops when MSG_PEEK is used.
-
-[0]:
-watchdog: BUG: soft lockup - CPU#2 stuck for 156s! [server:1963]
-Modules linked in:
-CPU: 2 UID: 0 PID: 1963 Comm: server Not tainted 6.19.0-rc8 #61 PREEMPT(none)
-Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
-RIP: 0010:sk_wait_data+0x15/0x190
-Code: 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 41 56 41 55 41 54 49 89 f4 55 48 89 d5 53 48 89 fb <48> 83 ec 30 65 48 8b 05 17 a4 6b 01 48 89 44 24 28 31 c0 65 48 8b
-RSP: 0018:ffffc90000603ca0 EFLAGS: 00000246
-RAX: 0000000000000000 RBX: ffff888102bf0800 RCX: 0000000000000001
-RDX: 0000000000000000 RSI: ffffc90000603d18 RDI: ffff888102bf0800
-RBP: 0000000000000000 R08: 0000000000000002 R09: 0000000000000101
-R10: 0000000000000000 R11: 0000000000000075 R12: ffffc90000603d18
-R13: ffff888102bf0800 R14: ffff888102bf0800 R15: 0000000000000000
-FS:  00007f6e38b8c4c0(0000) GS:ffff8881b877e000(0000) knlGS:0000000000000000
-CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 000055aa7bff1680 CR3: 0000000105cbe000 CR4: 00000000000006f0
-Call Trace:
- <TASK>
- mptcp_recvmsg+0x547/0x8c0 net/mptcp/protocol.c:2329
- inet_recvmsg+0x11f/0x130 net/ipv4/af_inet.c:891
- sock_recvmsg+0x94/0xc0 net/socket.c:1100
- __sys_recvfrom+0xb2/0x130 net/socket.c:2256
- __x64_sys_recvfrom+0x1f/0x30 net/socket.c:2267
- do_syscall_64+0x59/0x2d0 arch/x86/entry/syscall_64.c:94
- entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:131
-RIP: 0033:0x7f6e386a4a1d
-Code: 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 8d 05 f1 de 2c 00 41 89 ca 8b 00 85 c0 75 20 45 31 c9 45 31 c0 b8 2d 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 6b f3 c3 66 0f 1f 84 00 00 00 00 00 41 56 41
-RSP: 002b:00007ffc3c4bb078 EFLAGS: 00000246 ORIG_RAX: 000000000000002d
-RAX: ffffffffffffffda RBX: 000000000000861e RCX: 00007f6e386a4a1d
-RDX: 00000000000003ff RSI: 00007ffc3c4bb150 RDI: 0000000000000004
-RBP: 00007ffc3c4bb570 R08: 0000000000000000 R09: 0000000000000000
-R10: 0000000000000103 R11: 0000000000000246 R12: 00005605dbc00be0
-R13: 00007ffc3c4bb650 R14: 0000000000000000 R15: 0000000000000000
- </TASK>
-
-Fixes: 8e04ce45a8db ("mptcp: fix MSG_PEEK stream corruption")
-Signed-off-by: Li Xiasong <lixiasong1@huawei.com>
-Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Link: https://patch.msgid.link/20260330120335.659027-1-lixiasong1@huawei.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-[ Conflicts in protocol.c, because commit bc68b0efa1bf ("mptcp: move the
-  whole rx path under msk socket lock protection") and commit
-  d88b2127b242 ("mptcp: add eat_recv_skb helper") (with some
-  dependences) are not in this version. These conflicts were in the
-  context, and not related to this fix. ]
-Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/mptcp/protocol.c |   11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
---- a/net/mptcp/protocol.c
-+++ b/net/mptcp/protocol.c
-@@ -1997,7 +1997,7 @@ static int __mptcp_recvmsg_mskq(struct m
-                               struct msghdr *msg,
-                               size_t len, int flags, int copied_total,
-                               struct scm_timestamping_internal *tss,
--                              int *cmsg_flags)
-+                              int *cmsg_flags, struct sk_buff **last)
- {
-       struct sk_buff *skb, *tmp;
-       int total_data_len = 0;
-@@ -2013,6 +2013,7 @@ static int __mptcp_recvmsg_mskq(struct m
-                       /* skip already peeked skbs */
-                       if (total_data_len + data_len <= copied_total) {
-                               total_data_len += data_len;
-+                              *last = skb;
-                               continue;
-                       }
-@@ -2053,6 +2054,8 @@ static int __mptcp_recvmsg_mskq(struct m
-                       WRITE_ONCE(msk->rmem_released, msk->rmem_released + skb->truesize);
-                       __skb_unlink(skb, &msk->receive_queue);
-                       __kfree_skb(skb);
-+              } else {
-+                      *last = skb;
-               }
-               if (copied >= len)
-@@ -2274,10 +2277,12 @@ static int mptcp_recvmsg(struct sock *sk
-               cmsg_flags = MPTCP_CMSG_INQ;
-       while (copied < len) {
-+              struct sk_buff *last = NULL;
-               int err, bytes_read;
-               bytes_read = __mptcp_recvmsg_mskq(msk, msg, len - copied, flags,
--                                                copied, &tss, &cmsg_flags);
-+                                                copied, &tss, &cmsg_flags,
-+                                                &last);
-               if (unlikely(bytes_read < 0)) {
-                       if (!copied)
-                               copied = bytes_read;
-@@ -2335,7 +2340,7 @@ static int mptcp_recvmsg(struct sock *sk
-               pr_debug("block timeout %ld\n", timeo);
-               mptcp_cleanup_rbuf(msk, copied);
--              err = sk_wait_data(sk, &timeo, NULL);
-+              err = sk_wait_data(sk, &timeo, last);
-               if (err < 0) {
-                       err = copied ? : err;
-                       goto out_err;
index c458d9c53619bd8a5326a624d2e1397f2b15c4a3..d9e3a961e307ad56f25439b03fbacd18b9dad911 100644 (file)
@@ -25,7 +25,6 @@ misc-fastrpc-check-qcom_scm_assign_mem-return-in-rpmsg_probe.patch
 sched_ext-fix-stale-direct-dispatch-state-in-ddsp_dsq_id.patch
 revert-mptcp-add-needs_id-for-netlink-appending-addr.patch
 net-annotate-data-races-around-sk-sk_-data_ready-write_space.patch
-mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch
 loongarch-remove-unnecessary-checks-for-orc-unwinder.patch
 loongarch-handle-percpu-handler-address-for-orc-unwinder.patch
 netfilter-nft_ct-fix-use-after-free-in-timeout-object-destroy.patch
diff --git a/queue-6.6/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch b/queue-6.6/mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch
deleted file mode 100644 (file)
index 9afd583..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From matttbe@kernel.org Thu Apr  9 13:45:35 2026
-From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
-Date: Thu,  9 Apr 2026 13:45:26 +0200
-Subject: mptcp: fix soft lockup in mptcp_recvmsg()
-To: stable@vger.kernel.org, gregkh@linuxfoundation.org, sashal@kernel.org
-Cc: MPTCP Upstream <mptcp@lists.linux.dev>, Li Xiasong <lixiasong1@huawei.com>, "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, Jakub Kicinski <kuba@kernel.org>
-Message-ID: <20260409114525.1159899-2-matttbe@kernel.org>
-
-From: Li Xiasong <lixiasong1@huawei.com>
-
-commit 5dd8025a49c268ab6b94d978532af3ad341132a7 upstream.
-
-syzbot reported a soft lockup in mptcp_recvmsg() [0].
-
-When receiving data with MSG_PEEK | MSG_WAITALL flags, the skb is not
-removed from the sk_receive_queue. This causes sk_wait_data() to always
-find available data and never perform actual waiting, leading to a soft
-lockup.
-
-Fix this by adding a 'last' parameter to track the last peeked skb.
-This allows sk_wait_data() to make informed waiting decisions and prevent
-infinite loops when MSG_PEEK is used.
-
-[0]:
-watchdog: BUG: soft lockup - CPU#2 stuck for 156s! [server:1963]
-Modules linked in:
-CPU: 2 UID: 0 PID: 1963 Comm: server Not tainted 6.19.0-rc8 #61 PREEMPT(none)
-Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
-RIP: 0010:sk_wait_data+0x15/0x190
-Code: 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 41 56 41 55 41 54 49 89 f4 55 48 89 d5 53 48 89 fb <48> 83 ec 30 65 48 8b 05 17 a4 6b 01 48 89 44 24 28 31 c0 65 48 8b
-RSP: 0018:ffffc90000603ca0 EFLAGS: 00000246
-RAX: 0000000000000000 RBX: ffff888102bf0800 RCX: 0000000000000001
-RDX: 0000000000000000 RSI: ffffc90000603d18 RDI: ffff888102bf0800
-RBP: 0000000000000000 R08: 0000000000000002 R09: 0000000000000101
-R10: 0000000000000000 R11: 0000000000000075 R12: ffffc90000603d18
-R13: ffff888102bf0800 R14: ffff888102bf0800 R15: 0000000000000000
-FS:  00007f6e38b8c4c0(0000) GS:ffff8881b877e000(0000) knlGS:0000000000000000
-CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 000055aa7bff1680 CR3: 0000000105cbe000 CR4: 00000000000006f0
-Call Trace:
- <TASK>
- mptcp_recvmsg+0x547/0x8c0 net/mptcp/protocol.c:2329
- inet_recvmsg+0x11f/0x130 net/ipv4/af_inet.c:891
- sock_recvmsg+0x94/0xc0 net/socket.c:1100
- __sys_recvfrom+0xb2/0x130 net/socket.c:2256
- __x64_sys_recvfrom+0x1f/0x30 net/socket.c:2267
- do_syscall_64+0x59/0x2d0 arch/x86/entry/syscall_64.c:94
- entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:131
-RIP: 0033:0x7f6e386a4a1d
-Code: 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 8d 05 f1 de 2c 00 41 89 ca 8b 00 85 c0 75 20 45 31 c9 45 31 c0 b8 2d 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 6b f3 c3 66 0f 1f 84 00 00 00 00 00 41 56 41
-RSP: 002b:00007ffc3c4bb078 EFLAGS: 00000246 ORIG_RAX: 000000000000002d
-RAX: ffffffffffffffda RBX: 000000000000861e RCX: 00007f6e386a4a1d
-RDX: 00000000000003ff RSI: 00007ffc3c4bb150 RDI: 0000000000000004
-RBP: 00007ffc3c4bb570 R08: 0000000000000000 R09: 0000000000000000
-R10: 0000000000000103 R11: 0000000000000246 R12: 00005605dbc00be0
-R13: 00007ffc3c4bb650 R14: 0000000000000000 R15: 0000000000000000
- </TASK>
-
-Fixes: 8e04ce45a8db ("mptcp: fix MSG_PEEK stream corruption")
-Signed-off-by: Li Xiasong <lixiasong1@huawei.com>
-Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Link: https://patch.msgid.link/20260330120335.659027-1-lixiasong1@huawei.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-[ Conflicts in protocol.c, because commit bc68b0efa1bf ("mptcp: move the
-  whole rx path under msk socket lock protection") and commit
-  d88b2127b242 ("mptcp: add eat_recv_skb helper") (with some
-  dependences) are not in this version. These conflicts were in the
-  context, and not related to this fix. ]
-Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/mptcp/protocol.c |   11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
---- a/net/mptcp/protocol.c
-+++ b/net/mptcp/protocol.c
-@@ -1960,7 +1960,7 @@ static int __mptcp_recvmsg_mskq(struct m
-                               struct msghdr *msg,
-                               size_t len, int flags, int copied_total,
-                               struct scm_timestamping_internal *tss,
--                              int *cmsg_flags)
-+                              int *cmsg_flags, struct sk_buff **last)
- {
-       struct sk_buff *skb, *tmp;
-       int total_data_len = 0;
-@@ -1976,6 +1976,7 @@ static int __mptcp_recvmsg_mskq(struct m
-                       /* skip already peeked skbs */
-                       if (total_data_len + data_len <= copied_total) {
-                               total_data_len += data_len;
-+                              *last = skb;
-                               continue;
-                       }
-@@ -2016,6 +2017,8 @@ static int __mptcp_recvmsg_mskq(struct m
-                       WRITE_ONCE(msk->rmem_released, msk->rmem_released + skb->truesize);
-                       __skb_unlink(skb, &msk->receive_queue);
-                       __kfree_skb(skb);
-+              } else {
-+                      *last = skb;
-               }
-               if (copied >= len)
-@@ -2237,10 +2240,12 @@ static int mptcp_recvmsg(struct sock *sk
-               cmsg_flags = MPTCP_CMSG_INQ;
-       while (copied < len) {
-+              struct sk_buff *last = NULL;
-               int err, bytes_read;
-               bytes_read = __mptcp_recvmsg_mskq(msk, msg, len - copied, flags,
--                                                copied, &tss, &cmsg_flags);
-+                                                copied, &tss, &cmsg_flags,
-+                                                &last);
-               if (unlikely(bytes_read < 0)) {
-                       if (!copied)
-                               copied = bytes_read;
-@@ -2298,7 +2303,7 @@ static int mptcp_recvmsg(struct sock *sk
-               pr_debug("block timeout %ld\n", timeo);
-               mptcp_cleanup_rbuf(msk, copied);
--              err = sk_wait_data(sk, &timeo, NULL);
-+              err = sk_wait_data(sk, &timeo, last);
-               if (err < 0) {
-                       err = copied ? : err;
-                       goto out_err;
index 42e08dabc0c196c56f6584d6188570f635ee7cff..387eae5fe898846f5f93d8b58d366e2e09003ff4 100644 (file)
@@ -11,7 +11,6 @@ mips-mm-rewrite-tlb-uniquification-for-the-hidden-bi.patch
 asoc-simple-card-utils-don-t-use-__free-device_node-.patch
 scsi-ufs-core-fix-use-after-free-in-init-error-and-r.patch
 virtio_net-clamp-rss_max_key_size-to-netdev_rss_key_len.patch
-mptcp-fix-soft-lockup-in-mptcp_recvmsg.patch
 usb-gadget-f_hid-move-list-and-spinlock-inits-from-bind-to-alloc.patch
 revert-mptcp-add-needs_id-for-netlink-appending-addr.patch
 seg6-separate-dst_cache-for-input-and-output-paths-in-seg6-lwtunnel.patch