From f946fbe9f3eb82d3d7c526d5673f6bbcd2555ac8 Mon Sep 17 00:00:00 2001 From: Paolo Abeni Date: Tue, 16 Jun 2026 12:18:58 -0400 Subject: mptcp: fix missing wakeups in edge scenarios [ 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 Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) Link: https://patch.msgid.link/20260602-net-mptcp-misc-fixes-7-1-rc7-v2-1-856831229976@kernel.org Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- net/mptcp/protocol.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c3fd4dd6df4b..0655e1c438ab 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2197,8 +2197,10 @@ static bool __mptcp_move_skbs(struct mptcp_sock *msk) __mptcp_splice_receive_queue(sk); mptcp_data_unlock(sk); } - if (ret) + if (ret) { mptcp_check_data_fin((struct sock *)msk); + sk->sk_data_ready(sk); + } return !skb_queue_empty(&msk->receive_queue); } -- cgit v1.2.3