[ipxe-devel] [PATCH 2/4] [virtio] Remove virtio 1.0 workaround for old QEMU

Ladi Prosek lprosek at redhat.com
Fri Dec 16 14:30:03 UTC 2016


QEMU properly reverts queue_enable to 0 on device reset as of:

  commit 75fd6f13af8513f1e14add754549141e415f8704
  Author: Gerd Hoffmann <kraxel at redhat.com>
  Date:   Thu Jan 28 16:08:07 2016 +0100

  virtio-pci: call pci reset variant when guest requests reset.

Signed-off-by: Ladi Prosek <lprosek at redhat.com>
---
 src/drivers/bus/virtio-pci.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/drivers/bus/virtio-pci.c b/src/drivers/bus/virtio-pci.c
index 1fcf9ba..89c4512 100644
--- a/src/drivers/bus/virtio-pci.c
+++ b/src/drivers/bus/virtio-pci.c
@@ -347,10 +347,7 @@ int vpm_find_vqs(struct virtio_pci_modern_device *vdev,
 
         /* Check if queue is either not available or already active. */
         size = vpm_ioread16(vdev, &vdev->common, COMMON_OFFSET(queue_size));
-        /* QEMU has a bug where queues don't revert to inactive on device
-         * reset. Skip checking the queue_enable field until it is fixed.
-         */
-        if (!size /*|| vpm_ioread16(vdev, &vdev->common.queue_enable)*/)
+        if (!size || vpm_ioread16(vdev, &vdev->common, COMMON_OFFSET(queue_enable)))
             return -ENOENT;
 
         if (size & (size - 1)) {
-- 
2.7.4




More information about the ipxe-devel mailing list