mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
sctp: Do not wake readers in __sctp_write_space()
[ Upstream commit af295892a7
]
Function __sctp_write_space() doesn't set poll key, which leads to
ep_poll_callback() waking up all waiters, not only these waiting
for the socket being writable. Set the key properly using
wake_up_interruptible_poll(), which is preferred over the sync
variant, as writers are not woken up before at least half of the
queue is available. Also, TCP does the same.
Signed-off-by: Petr Malat <oss@malat.biz>
Acked-by: Xin Long <lucien.xin@gmail.com>
Link: https://patch.msgid.link/20250516081727.1361451-1-oss@malat.biz
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
cba1b82bdc
commit
ec7d08ad9a
|
@ -9100,7 +9100,8 @@ static void __sctp_write_space(struct sctp_association *asoc)
|
|||
wq = rcu_dereference(sk->sk_wq);
|
||||
if (wq) {
|
||||
if (waitqueue_active(&wq->wait))
|
||||
wake_up_interruptible(&wq->wait);
|
||||
wake_up_interruptible_poll(&wq->wait, EPOLLOUT |
|
||||
EPOLLWRNORM | EPOLLWRBAND);
|
||||
|
||||
/* Note that we try to include the Async I/O support
|
||||
* here by modeling from the current TCP/UDP code.
|
||||
|
|
Loading…
Reference in New Issue
Block a user