]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
msi: Guard msi/msix_write_config with msi_present
authorJan Kiszka <jan.kiszka@siemens.com>
Fri, 11 May 2012 14:42:39 +0000 (11:42 -0300)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 7 Jun 2012 14:19:00 +0000 (17:19 +0300)
Terminate msi/msix_write_config early if support is not enabled. This
allows to remove checks at the caller site if MSI is optional.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/msi.c
hw/msix.c

index b2903fc93c28185c8865a60534e581a0db5756f5..da12f33728fee40a2beef527f1718fb817435d22 100644 (file)
--- a/hw/msi.c
+++ b/hw/msi.c
@@ -276,7 +276,8 @@ void msi_write_config(PCIDevice *dev, uint32_t addr, uint32_t val, int len)
     unsigned int vector;
     uint32_t pending;
 
-    if (!ranges_overlap(addr, len, dev->msi_cap, msi_cap_sizeof(flags))) {
+    if (!msi_present(dev) ||
+        !ranges_overlap(addr, len, dev->msi_cap, msi_cap_sizeof(flags))) {
         return;
     }
 
index 59c7a8388fd428683a8a916a400b4371f74fa505..339e652b81cc8e82ebad4da0c148cb069b3a908f 100644 (file)
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -187,7 +187,7 @@ void msix_write_config(PCIDevice *dev, uint32_t addr,
     int vector;
     bool was_masked;
 
-    if (!range_covers_byte(addr, len, enable_pos)) {
+    if (!msix_present(dev) || !range_covers_byte(addr, len, enable_pos)) {
         return;
     }