Thread (18 messages) 18 messages, 3 authors, 2022-07-21

Re: [RFC PATCH v1 2/3] virtio/vsock: use 'target' in notify_poll_in, callback.

From: Arseniy Krasnov <hidden>
Date: 2022-07-20 05:38:21
Also in: kvm, lkml

On 19.07.2022 15:48, Stefano Garzarella wrote:
On Mon, Jul 18, 2022 at 08:17:31AM +0000, Arseniy Krasnov wrote:
quoted
This callback controls setting of POLLIN,POLLRDNORM output bits
of poll() syscall,but in some cases,it is incorrectly to set it,
when socket has at least 1 bytes of available data. Use 'target'
which is already exists and equal to sk_rcvlowat in this case.

Signed-off-by: Arseniy Krasnov <redacted>
---
net/vmw_vsock/virtio_transport_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index ec2c2afbf0d0..591908740992 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -634,7 +634,7 @@ virtio_transport_notify_poll_in(struct vsock_sock *vsk,
                size_t target,
                bool *data_ready_now)
{
-    if (vsock_stream_has_data(vsk))
+    if (vsock_stream_has_data(vsk) >= target)
        *data_ready_now = true;
    else
        *data_ready_now = false;
Perhaps we can take the opportunity to clean up the code in this way:

    *data_ready_now = vsock_stream_has_data(vsk) >= target;
Ack
Anyway, I think we also need to fix the other transports (vmci and hyperv), what do you think?
For vmci it is look clear to fix it. For hyperv i need to check it more, because it already
uses some internal target value.
Thanks,
Stefano
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help