mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
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
This commit is contained in:
commit
fa687fb9ce
@ -197,9 +197,20 @@ static struct vmd_irq_list *vmd_next_irq(struct vmd_dev *vmd, struct msi_desc *d
|
|||||||
int i, best = 1;
|
int i, best = 1;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
if (pci_is_bridge(msi_desc_to_pci_dev(desc)) || vmd->msix_count == 1)
|
if (vmd->msix_count == 1)
|
||||||
return &vmd->irqs[0];
|
return &vmd->irqs[0];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* White list for fast-interrupt handlers. All others will share the
|
||||||
|
* "slow" interrupt vector.
|
||||||
|
*/
|
||||||
|
switch (msi_desc_to_pci_dev(desc)->class) {
|
||||||
|
case PCI_CLASS_STORAGE_EXPRESS:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return &vmd->irqs[0];
|
||||||
|
}
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&list_lock, flags);
|
raw_spin_lock_irqsave(&list_lock, flags);
|
||||||
for (i = 1; i < vmd->msix_count; i++)
|
for (i = 1; i < vmd->msix_count; i++)
|
||||||
if (vmd->irqs[i].count < vmd->irqs[best].count)
|
if (vmd->irqs[i].count < vmd->irqs[best].count)
|
||||||
|
Loading…
Reference in New Issue
Block a user