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 <rka...@virtuozzo.com> Suggested-by: Denis Plotnikov <dplotni...@virtuozzo.com> Cc: qemu-sta...@nongnu.org Signed-off-by: Michael S. Tsirkin <m...@redhat.com> --- hw/virtio/virtio-pci.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index c6b47a9c73..e5c759e19e 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, -- MST