summaryrefslogtreecommitdiff
path: root/drivers/pci/host/vmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/host/vmd.c')
-rw-r--r--drivers/pci/host/vmd.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/pci/host/vmd.c b/drivers/pci/host/vmd.c
index 6088c3083194..539da102f3d7 100644
--- a/drivers/pci/host/vmd.c
+++ b/drivers/pci/host/vmd.c
@@ -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;