mptcp: fix missing wakeups in edge scenarios
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: 6771bfd9ee ("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>
This commit is contained in:
parent
672bd0519e
commit
9d8d28738f
1 changed files with 4 additions and 0 deletions
|
|
@ -2276,6 +2276,10 @@ static bool mptcp_move_skbs(struct sock *sk)
|
|||
mptcp_backlog_spooled(sk, moved, &skbs);
|
||||
}
|
||||
mptcp_data_unlock(sk);
|
||||
|
||||
if (enqueued && mptcp_epollin_ready(sk))
|
||||
sk->sk_data_ready(sk);
|
||||
|
||||
return enqueued;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue