Patchwork [v3,13/13] msix: clear not only INTA, but all INTx when MSI-X is enabled.

login
register
mail settings
Submitter Isaku Yamahata
Date Sept. 15, 2010, 5:38 a.m.
Message ID <e18973a31e2bfc2d37bcf94e7bcd0f630ea20481.1284528424.git.yamahata@valinux.co.jp>
Download mbox | patch
Permalink /patch/64785/
State New
Headers show

Comments

Isaku Yamahata - Sept. 15, 2010, 5:38 a.m.
clear not only INTA, but all INTx when MSI-X is enabled.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
 hw/msix.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

Patch

diff --git a/hw/msix.c b/hw/msix.c
index 7ce63eb..b202ff7 100644
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -158,6 +158,7 @@  void msix_write_config(PCIDevice *dev, uint32_t addr,
 {
     unsigned enable_pos = dev->msix_cap + MSIX_CONTROL_OFFSET;
     int vector;
+    int i;
 
     if (!range_covers_byte(addr, len, enable_pos)) {
         return;
@@ -167,7 +168,9 @@  void msix_write_config(PCIDevice *dev, uint32_t addr,
         return;
     }
 
-    qemu_set_irq(dev->irq[0], 0);
+    for (i = 0; i < PCI_NUM_PINS; ++i) {
+        qemu_set_irq(dev->irq[i], 0);
+    }
 
     if (msix_function_masked(dev)) {
         return;