Commit 37d7f818 authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas
Browse files

PCI: vmd: Reserve IRQ pre-vector for better affinity



The driver has a special purpose for the VMD device's first IRQ, so this
one shouldn't be considered for IRQ affinity.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 16f73eb0
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -671,6 +671,14 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
	struct vmd_dev *vmd;
	int i, err;

	/*
	 * The first vector is reserved for special use, so start affinity at
	 * the second vector
	 */
	struct irq_affinity affd = {
		.pre_vectors = 1,
	};

	if (resource_size(&dev->resource[VMD_CFGBAR]) < (1 << 20))
		return -ENOMEM;

@@ -696,8 +704,8 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
	if (vmd->msix_count < 0)
		return -ENODEV;

	vmd->msix_count = pci_alloc_irq_vectors(dev, 1, vmd->msix_count,
					PCI_IRQ_MSIX | PCI_IRQ_AFFINITY);
	vmd->msix_count = pci_alloc_irq_vectors_affinity(dev, 1, vmd->msix_count,
					PCI_IRQ_MSIX | PCI_IRQ_AFFINITY, &affd);
	if (vmd->msix_count < 0)
		return vmd->msix_count;