We already do the test for msix on the caller, just use that test Signed-off-by: Juan Quintela <quint...@redhat.com> --- hw/msix.c | 8 -------- hw/virtio-pci.c | 7 ++++--- 2 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/hw/msix.c b/hw/msix.c index 4bc6147..8dca9fd 100644 --- a/hw/msix.c +++ b/hw/msix.c @@ -295,10 +295,6 @@ void msix_save(PCIDevice *dev, QEMUFile *f) { unsigned n = dev->msix_entries_nr; - if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) { - return; - } - qemu_put_buffer(f, dev->msix_table_page, n * MSIX_ENTRY_SIZE); qemu_put_buffer(f, dev->msix_table_page + MSIX_PAGE_PENDING, (n + 7) / 8); } @@ -308,10 +304,6 @@ void msix_load(PCIDevice *dev, QEMUFile *f) { unsigned n = dev->msix_entries_nr; - if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) { - return; - } - msix_free_irq_entries(dev); qemu_get_buffer(f, dev->msix_table_page, n * MSIX_ENTRY_SIZE); qemu_get_buffer(f, dev->msix_table_page + MSIX_PAGE_PENDING, (n + 7) / 8); diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c index d222ce0..25b6380 100644 --- a/hw/virtio-pci.c +++ b/hw/virtio-pci.c @@ -109,9 +109,10 @@ static void virtio_pci_save_config(void * opaque, QEMUFile *f) { VirtIOPCIProxy *proxy = opaque; pci_device_save(&proxy->pci_dev, f); - msix_save(&proxy->pci_dev, f); - if (msix_present(&proxy->pci_dev)) + if (msix_present(&proxy->pci_dev)) { + msix_save(&proxy->pci_dev, f); qemu_put_be16(f, proxy->vdev->config_vector); + } } static void virtio_pci_save_queue(void * opaque, int n, QEMUFile *f) @@ -129,8 +130,8 @@ static int virtio_pci_load_config(void * opaque, QEMUFile *f) if (ret) { return ret; } - msix_load(&proxy->pci_dev, f); if (msix_present(&proxy->pci_dev)) { + msix_load(&proxy->pci_dev, f); qemu_get_be16s(f, &proxy->vdev->config_vector); } else { proxy->vdev->config_vector = VIRTIO_NO_VECTOR; -- 1.6.5.2