On Mon, 22 Nov 2021 17:35:24 +0100 Stefano Garzarella <sgarzare@xxxxxxxxxx> wrote: > The "used length" reported by calling vhost_add_used() must be the > number of bytes written by the device (using "in" buffers). > > In vhost_vsock_handle_tx_kick() the device only reads the guest > buffers (they are all "out" buffers), without writing anything, > so we must pass 0 as "used length" to comply virtio spec. > > Fixes: 433fc58e6bf2 ("VSOCK: Introduce vhost_vsock.ko") > Cc: stable@xxxxxxxxxxxxxxx > Reported-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > Suggested-by: Jason Wang <jasowang@xxxxxxxxxx> > Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx> Reviewed-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > --- > drivers/vhost/vsock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c > index 938aefbc75ec..4e3b95af7ee4 100644 > --- a/drivers/vhost/vsock.c > +++ b/drivers/vhost/vsock.c > @@ -554,7 +554,7 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work) > virtio_transport_free_pkt(pkt); > > len += sizeof(pkt->hdr); > - vhost_add_used(vq, head, len); > + vhost_add_used(vq, head, 0); > total_len += len; > added = true; > } while(likely(!vhost_exceeds_weight(vq, ++pkts, total_len))); _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization