virtio/vsock: fix logic which reduces credit update messages
authorArseniy Krasnov <avkrasnov@salutedevices.com>
Thu, 14 Dec 2023 12:52:28 +0000 (15:52 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Dec 2023 10:37:35 +0000 (10:37 +0000)
commit93b80887668226180ea5f5349cc728ca6dc700ab
treee27164f79784c1b98c0d923d72f4defc1ea3684a
parentbb7403655b3c3eb245d0ee330047cd3e20b3c4af
virtio/vsock: fix logic which reduces credit update messages

Add one more condition for sending credit update during dequeue from
stream socket: when number of bytes in the rx queue is smaller than
SO_RCVLOWAT value of the socket. This is actual for non-default value
of SO_RCVLOWAT (e.g. not 1) - idea is to "kick" peer to continue data
transmission, because we need at least SO_RCVLOWAT bytes in our rx
queue to wake up user for reading data (in corner case it is also
possible to stuck both tx and rx sides, this is why 'Fixes' is used).

Fixes: b89d882dc9fc ("vsock/virtio: reduce credit update messages")
Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/virtio_transport_common.c