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 <agord...@redhat.com> --- drivers/scsi/pmcraid.c | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index 1eb7b028..5c62d22 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -4680,24 +4680,23 @@ pmcraid_register_interrupt_handler(struct pmcraid_instance *pinstance) if ((pmcraid_enable_msix) && (pci_find_capability(pdev, PCI_CAP_ID_MSIX))) { - int num_hrrq = PMCRAID_NUM_MSIX_VECTORS; struct msix_entry entries[PMCRAID_NUM_MSIX_VECTORS]; + int num_hrrq = ARRAY_SIZE(entries); int i; - for (i = 0; i < PMCRAID_NUM_MSIX_VECTORS; i++) - entries[i].entry = i; - - rc = pci_enable_msix(pdev, entries, num_hrrq); - if (rc < 0) - goto pmcraid_isr_legacy; /* Check how many MSIX vectors are allocated and register * msi-x handlers for each of them giving appropriate buffer */ - if (rc > 0) { - num_hrrq = rc; - if (pci_enable_msix(pdev, entries, num_hrrq)) - goto pmcraid_isr_legacy; - } + rc = pci_msix_table_size(pdev); + if (rc < 0) + goto pmcraid_isr_legacy; + + num_hrrq = min(num_hrrq, rc); + for (i = 0; i < num_hrrq; i++) + entries[i].entry = i; + + if (pci_enable_msix(pdev, entries, num_hrrq)) + goto pmcraid_isr_legacy; for (i = 0; i < num_hrrq; i++) { pinstance->hrrq_vector[i].hrrq_id = i; -- 1.7.7.6 ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired