Skip to content

Commit fa687fb

Browse files
committed
Merge branch 'remotes/lorenzo/pci/vmd'
- Whitelist VMD devices with fast interrupt handlers to avoid sharing vectors with slow handlers (Keith Busch) * remotes/lorenzo/pci/vmd: PCI: vmd: White list for fast interrupt handlers
2 parents 323fc75 + a7f58b9 commit fa687fb

File tree

1 file changed

+12
-1
lines changed
  • drivers/pci/controller

1 file changed

+12
-1
lines changed

drivers/pci/controller/vmd.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,20 @@ static struct vmd_irq_list *vmd_next_irq(struct vmd_dev *vmd, struct msi_desc *d
197197
int i, best = 1;
198198
unsigned long flags;
199199

200-
if (pci_is_bridge(msi_desc_to_pci_dev(desc)) || vmd->msix_count == 1)
200+
if (vmd->msix_count == 1)
201201
return &vmd->irqs[0];
202202

203+
/*
204+
* White list for fast-interrupt handlers. All others will share the
205+
* "slow" interrupt vector.
206+
*/
207+
switch (msi_desc_to_pci_dev(desc)->class) {
208+
case PCI_CLASS_STORAGE_EXPRESS:
209+
break;
210+
default:
211+
return &vmd->irqs[0];
212+
}
213+
203214
raw_spin_lock_irqsave(&list_lock, flags);
204215
for (i = 1; i < vmd->msix_count; i++)
205216
if (vmd->irqs[i].count < vmd->irqs[best].count)

0 commit comments

Comments
 (0)