msix: Invoke msix_handle_mask_update on msix_mask_all
authorJan Kiszka <jan.kiszka@siemens.com>
Thu, 17 May 2012 13:32:30 +0000 (10:32 -0300)
committerAvi Kivity <avi@redhat.com>
Mon, 21 May 2012 16:22:49 +0000 (19:22 +0300)
In preparation of firing vector notifiers on mask changes, call
msix_handle_mask_update also from msix_mask_all. So far, this will have
no real effect.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
hw/msix.c

index 31974657d3274c67bd23c8746a46429da17d38b1..e1a7d92feae58c43dae06fa830215ececf4c9b9a 100644 (file)
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -231,10 +231,14 @@ static void msix_mmio_setup(PCIDevice *d, MemoryRegion *bar)
 static void msix_mask_all(struct PCIDevice *dev, unsigned nentries)
 {
     int vector;
+
     for (vector = 0; vector < nentries; ++vector) {
         unsigned offset =
             vector * PCI_MSIX_ENTRY_SIZE + PCI_MSIX_ENTRY_VECTOR_CTRL;
+        bool was_masked = msix_is_masked(dev, vector);
+
         dev->msix_table_page[offset] |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
+        msix_handle_mask_update(dev, vector, was_masked);
     }
 }