diff options
| author | Michal Luczaj <mhal@rbox.co> | 2024-11-18 22:03:41 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-12-14 19:59:47 +0100 |
| commit | 57c47d3cf1a60b31c270d64a4a0fa2536cb51a96 (patch) | |
| tree | a4304d3f110416b7991414869d5b93d43ab44ff2 /net | |
| parent | c3799292d639eb88081cb6fa6d9ba354fee4f4ca (diff) | |
| download | linux-57c47d3cf1a60b31c270d64a4a0fa2536cb51a96.tar.gz linux-57c47d3cf1a60b31c270d64a4a0fa2536cb51a96.tar.bz2 linux-57c47d3cf1a60b31c270d64a4a0fa2536cb51a96.zip | |
bpf, vsock: Fix poll() missing a queue
[ Upstream commit 9f0fc98145218ff8f50d8cfa3b393785056c53e1 ]
When a verdict program simply passes a packet without redirection, sk_msg
is enqueued on sk_psock::ingress_msg. Add a missing check to poll().
Fixes: 634f1a7110b4 ("vsock: support sockmap")
Signed-off-by: Michal Luczaj <mhal@rbox.co>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Luigi Leonardi <leonardi@redhat.com>
Link: https://lore.kernel.org/r/20241118-vsock-bpf-poll-close-v1-1-f1b9669cacdc@rbox.co
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
| -rw-r--r-- | net/vmw_vsock/af_vsock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c index f5eb737a677d..7ba3357c9882 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -1050,6 +1050,9 @@ static __poll_t vsock_poll(struct file *file, struct socket *sock, mask |= EPOLLRDHUP; } + if (sk_is_readable(sk)) + mask |= EPOLLIN | EPOLLRDNORM; + if (sock->type == SOCK_DGRAM) { /* For datagram sockets we can read if there is something in * the queue and write as long as the socket isn't shutdown for |
