aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2019-12-13 09:22:48 -0500
committerMichael S. Tsirkin <mst@redhat.com>2020-01-05 07:03:03 -0500
commitd0c5f643383b9e84316f148affff368ac33d75b9 (patch)
treeb6141c3ecf9268ed7903212705d32f2821b1c762 /hw/virtio
parent8fdee7118defeb34441d860047e3e0cfd9da9c26 (diff)
downloadqemu-d0c5f643383b9e84316f148affff368ac33d75b9.zip
qemu-d0c5f643383b9e84316f148affff368ac33d75b9.tar.gz
qemu-d0c5f643383b9e84316f148affff368ac33d75b9.tar.bz2
virtio: update queue size on guest write
Some guests read back queue size after writing it. Update the size immediatly upon write otherwise they get confused. In particular this is the case for seabios. Reported-by: Roman Kagan <rkagan@virtuozzo.com> Suggested-by: Denis Plotnikov <dplotnikov@virtuozzo.com> Cc: qemu-stable@nongnu.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/virtio')
-rw-r--r--hw/virtio/virtio-pci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index c6b47a9..e5c759e 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1256,6 +1256,8 @@ static void virtio_pci_common_write(void *opaque, hwaddr addr,
break;
case VIRTIO_PCI_COMMON_Q_SIZE:
proxy->vqs[vdev->queue_sel].num = val;
+ virtio_queue_set_num(vdev, vdev->queue_sel,
+ proxy->vqs[vdev->queue_sel].num);
break;
case VIRTIO_PCI_COMMON_Q_MSIX:
msix_vector_unuse(&proxy->pci_dev,