diff mbox

[2/2] vmd: Assign vector zero to all bridges

Message ID 1500593634-4558-2-git-send-email-keith.busch@intel.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Keith Busch July 20, 2017, 11:33 p.m. UTC
We don't want slower IRQ handlers impacting faster devices that happen
to be assigned the same VMD interrupt vector. The driver was trying to
separate such devices by checking if MSI-x wasn't used, but really we
just don't want to end devices to share with bridges. Most bridges may
use MSI currently, so that criteria happened to work, but newer ones may
use MSI-x, so this patch explicity checks the device type when choosing
a vector.

Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 drivers/pci/host/vmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/drivers/pci/host/vmd.c b/drivers/pci/host/vmd.c
index 8cddf30..031eef2 100644
--- a/drivers/pci/host/vmd.c
+++ b/drivers/pci/host/vmd.c
@@ -183,7 +183,7 @@  static struct vmd_irq_list *vmd_next_irq(struct vmd_dev *vmd, struct msi_desc *d
 	int i, best = 1;
 	unsigned long flags;
 
-	if (!desc->msi_attrib.is_msix || vmd->msix_count == 1)
+	if (pci_is_bridge(msi_desc_to_pci_dev(desc)) || vmd->msix_count == 1)
 		return &vmd->irqs[0];
 
 	raw_spin_lock_irqsave(&list_lock, flags);