]> Git Repo - qemu.git/blobdiff - hw/display/virtio-vga.c
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20170913-pull-request' into...
[qemu.git] / hw / display / virtio-vga.c
index 5b510a17fdf4d3f2918c0d1145e15358e9a3e6d5..f9b017d86bbcf51387c9304315606ae52e3d1894 100644 (file)
@@ -120,8 +120,19 @@ static void virtio_vga_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
      * virtio regions are moved to the end of bar #2, to make room for
      * the stdvga mmio registers at the start of bar #2.
      */
-    vpci_dev->modern_mem_bar = 2;
-    vpci_dev->msix_bar = 4;
+    vpci_dev->modern_mem_bar_idx = 2;
+    vpci_dev->msix_bar_idx = 4;
+
+    if (!(vpci_dev->flags & VIRTIO_PCI_FLAG_PAGE_PER_VQ)) {
+        /*
+         * with page-per-vq=off there is no padding space we can use
+         * for the stdvga registers.  Make the common and isr regions
+         * smaller then.
+         */
+        vpci_dev->common.size /= 2;
+        vpci_dev->isr.size /= 2;
+    }
+
     offset = memory_region_size(&vpci_dev->modern_bar);
     offset -= vpci_dev->notify.size;
     vpci_dev->notify.offset = offset;
This page took 0.023477 seconds and 4 git commands to generate.