diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2020-08-06 02:24:16 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2020-08-06 02:24:16 +0300 |
commit | d697552f52f31f3b46050522c2e93f5c3aed3046 (patch) | |
tree | 69c93e497fcbcde12bad5c48fc082cbeaf8b7cd6 | |
parent | 0caa17f5f2bbd3b4734a1a80d4403493e747ed4c (diff) | |
parent | 30ff3e8c287455e9f7f85162df10d62819ba42a9 (diff) | |
download | linux-d697552f52f31f3b46050522c2e93f5c3aed3046.tar.xz |
Merge branch 'pci/msi'
- Forward MSI-X error code in pci_alloc_irq_vectors_affinity() (Piotr
Stankiewicz)
* pci/msi:
PCI/MSI: Forward MSI-X error code in pci_alloc_irq_vectors_affinity()
-rw-r--r-- | drivers/pci/msi.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 6b43a5455c7a..cade9be68b09 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -1191,8 +1191,7 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, struct irq_affinity *affd) { struct irq_affinity msi_default_affd = {0}; - int msix_vecs = -ENOSPC; - int msi_vecs = -ENOSPC; + int nvecs = -ENOSPC; if (flags & PCI_IRQ_AFFINITY) { if (!affd) @@ -1203,17 +1202,16 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, } if (flags & PCI_IRQ_MSIX) { - msix_vecs = __pci_enable_msix_range(dev, NULL, min_vecs, - max_vecs, affd, flags); - if (msix_vecs > 0) - return msix_vecs; + nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs, + affd, flags); + if (nvecs > 0) + return nvecs; } if (flags & PCI_IRQ_MSI) { - msi_vecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, - affd); - if (msi_vecs > 0) - return msi_vecs; + nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd); + if (nvecs > 0) + return nvecs; } /* use legacy IRQ if allowed */ @@ -1231,9 +1229,7 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, } } - if (msix_vecs == -ENOSPC) - return -ENOSPC; - return msi_vecs; + return nvecs; } EXPORT_SYMBOL(pci_alloc_irq_vectors_affinity); |