Loading drivers/pci/controller/vmd.c +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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 Loading
drivers/pci/controller/vmd.c +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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