[PATCH RFC 34/77] ioat: Update MSI/MSI-X interrupts enablement code
Alexander Gordeev
agordeev at redhat.com
Wed Oct 2 20:48:50 EST 2013
As result of recent re-design of the MSI/MSI-X interrupts enabling
pattern this driver has to be updated to use the new technique to
obtain a optimal number of MSI/MSI-X interrupts required.
Signed-off-by: Alexander Gordeev <agordeev at redhat.com>
---
drivers/dma/ioat/dma.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
index acee3b2..b352ee6 100644
--- a/drivers/dma/ioat/dma.c
+++ b/drivers/dma/ioat/dma.c
@@ -915,15 +915,19 @@ int ioat_dma_setup_interrupts(struct ioatdma_device *device)
msix:
/* The number of MSI-X vectors should equal the number of channels */
+ err = pci_msix_table_size(pdev);
+ if (err < 0)
+ goto msi;
+ if (err < device->common.chancnt)
+ goto msix_single_vector;
+
msixcnt = device->common.chancnt;
for (i = 0; i < msixcnt; i++)
device->msix_entries[i].entry = i;
err = pci_enable_msix(pdev, device->msix_entries, msixcnt);
- if (err < 0)
+ if (err)
goto msi;
- if (err > 0)
- goto msix_single_vector;
for (i = 0; i < msixcnt; i++) {
msix = &device->msix_entries[i];
--
1.7.7.6
More information about the Linuxppc-dev
mailing list