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/rapidio/devices/tsi721.c | 27 +++++++++++++++++---------- 1 files changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c index ff7cbf2..5edd920 100644 --- a/drivers/rapidio/devices/tsi721.c +++ b/drivers/rapidio/devices/tsi721.c @@ -734,6 +734,16 @@ static int tsi721_enable_msix(struct tsi721_device *priv) int err; int i; + err = pci_msix_table_size(priv->pdev); + if (err < 0) + goto err_out; + if (err < ARRAY_SIZE(entries)) { + dev_info(&priv->pdev->dev, + "Only %d MSI-X vectors available, not using MSI-X\n", + err); + return -ENOSPC; + } + entries[TSI721_VECT_IDB].entry = TSI721_MSIX_SR2PC_IDBQ_RCV(IDB_QUEUE); entries[TSI721_VECT_PWRX].entry = TSI721_MSIX_SRIO_MAC_INT; @@ -769,16 +779,8 @@ static int tsi721_enable_msix(struct tsi721_device *priv) #endif /* CONFIG_RAPIDIO_DMA_ENGINE */ err = pci_enable_msix(priv->pdev, entries, ARRAY_SIZE(entries)); - if (err) { - if (err > 0) - dev_info(&priv->pdev->dev, - "Only %d MSI-X vectors available, " - "not using MSI-X\n", err); - else - dev_err(&priv->pdev->dev, - "Failed to enable MSI-X (err=%d)\n", err); - return err; - } + if (err) + goto err_out; /* * Copy MSI-X vector information into tsi721 private structure @@ -833,6 +835,11 @@ static int tsi721_enable_msix(struct tsi721_device *priv) #endif /* CONFIG_RAPIDIO_DMA_ENGINE */ return 0; + +err_out: + dev_err(&priv->pdev->dev, + "Failed to enable MSI-X (err=%d)\n", err); + return err; } #endif /* CONFIG_PCI_MSI */ -- 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