diff mbox

[1/1] kvm: don't check per-vector mask bit before enable MSI-X

Message ID 1239241259-23146-1-git-send-email-sheng@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sheng Yang April 9, 2009, 1:40 a.m. UTC
Some driver(e.g. bnx2) do the following to enable MSI-X:
1. Mask all vectors.
2. Write the msg data and address.
3. Enable MSI-X
4. Unmask all the vectors.

For this, check per-vector mask bit before enable MSI-X would cause device
fail to enable MSI-X. So now we only determine the availability of vector
by if msg_data is zero.

Signed-off-by: Sheng Yang <sheng@linux.intel.com>
---
 qemu/hw/device-assignment.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

Comments

Avi Kivity April 9, 2009, 3:29 p.m. UTC | #1
Sheng Yang wrote:
> Some driver(e.g. bnx2) do the following to enable MSI-X:
> 1. Mask all vectors.
> 2. Write the msg data and address.
> 3. Enable MSI-X
> 4. Unmask all the vectors.
>
> For this, check per-vector mask bit before enable MSI-X would cause device
> fail to enable MSI-X. So now we only determine the availability of vector
> by if msg_data is zero.
>   

Applied, thanks.
diff mbox

Patch

diff --git a/qemu/hw/device-assignment.c b/qemu/hw/device-assignment.c
index f33ce3c..1f0a1a7 100644
--- a/qemu/hw/device-assignment.c
+++ b/qemu/hw/device-assignment.c
@@ -823,9 +823,6 @@  static int assigned_dev_update_msix_mmio(PCIDevice *pci_dev)
     /* Get the usable entry number for allocating */
     for (i = 0; i < entries_max_nr; i++) {
         memcpy(&msg_ctrl, va + i * 16 + 12, 4);
-        /* 0x1 is mask bit for per vector */
-        if (msg_ctrl & 0x1)
-            continue;
         memcpy(&msg_data, va + i * 16 + 8, 4);
         /* Ignore unused entry even it's unmasked */
         if (msg_data == 0)