aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2014-02-18 05:07:54 -0500
committerDavid S. Miller <davem@davemloft.net>2014-02-18 15:33:29 -0500
commita5444b17478a7bf32cea1864e7923ef1da7fb215 (patch)
tree1d1474848307e201092829bc769dfb5928e51aa6 /drivers
parentf2a2dfeb9431325b40317c9733d8a9536001d15a (diff)
bnx2x: Use pci_enable_msix_range() instead of pci_enable_msix()
As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() and pci_enable_msix_range() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Ariel Elior <ariele@broadcom.com> Cc: netdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c46
1 files changed, 20 insertions, 26 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 9ded3dbb7678..8363b9de5004 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -1638,36 +1638,16 @@ int bnx2x_enable_msix(struct bnx2x *bp)
1638 DP(BNX2X_MSG_SP, "about to request enable msix with %d vectors\n", 1638 DP(BNX2X_MSG_SP, "about to request enable msix with %d vectors\n",
1639 msix_vec); 1639 msix_vec);
1640 1640
1641 rc = pci_enable_msix(bp->pdev, &bp->msix_table[0], msix_vec); 1641 rc = pci_enable_msix_range(bp->pdev, &bp->msix_table[0],
1642 1642 BNX2X_MIN_MSIX_VEC_CNT(bp), msix_vec);
1643 /* 1643 /*
1644 * reconfigure number of tx/rx queues according to available 1644 * reconfigure number of tx/rx queues according to available
1645 * MSI-X vectors 1645 * MSI-X vectors
1646 */ 1646 */
1647 if (rc >= BNX2X_MIN_MSIX_VEC_CNT(bp)) { 1647 if (rc == -ENOSPC) {
1648 /* how less vectors we will have? */
1649 int diff = msix_vec - rc;
1650
1651 BNX2X_DEV_INFO("Trying to use less MSI-X vectors: %d\n", rc);
1652
1653 rc = pci_enable_msix(bp->pdev, &bp->msix_table[0], rc);
1654
1655 if (rc) {
1656 BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n", rc);
1657 goto no_msix;
1658 }
1659 /*
1660 * decrease number of queues by number of unallocated entries
1661 */
1662 bp->num_ethernet_queues -= diff;
1663 bp->num_queues = bp->num_ethernet_queues + bp->num_cnic_queues;
1664
1665 BNX2X_DEV_INFO("New queue configuration set: %d\n",
1666 bp->num_queues);
1667 } else if (rc > 0) {
1668 /* Get by with single vector */ 1648 /* Get by with single vector */
1669 rc = pci_enable_msix(bp->pdev, &bp->msix_table[0], 1); 1649 rc = pci_enable_msix_range(bp->pdev, &bp->msix_table[0], 1, 1);
1670 if (rc) { 1650 if (rc < 0) {
1671 BNX2X_DEV_INFO("Single MSI-X is not attainable rc %d\n", 1651 BNX2X_DEV_INFO("Single MSI-X is not attainable rc %d\n",
1672 rc); 1652 rc);
1673 goto no_msix; 1653 goto no_msix;
@@ -1680,8 +1660,22 @@ int bnx2x_enable_msix(struct bnx2x *bp)
1680 bp->num_ethernet_queues = 1; 1660 bp->num_ethernet_queues = 1;
1681 bp->num_queues = bp->num_ethernet_queues + bp->num_cnic_queues; 1661 bp->num_queues = bp->num_ethernet_queues + bp->num_cnic_queues;
1682 } else if (rc < 0) { 1662 } else if (rc < 0) {
1683 BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n", rc); 1663 BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n", rc);
1684 goto no_msix; 1664 goto no_msix;
1665 } else if (rc < msix_vec) {
1666 /* how less vectors we will have? */
1667 int diff = msix_vec - rc;
1668
1669 BNX2X_DEV_INFO("Trying to use less MSI-X vectors: %d\n", rc);
1670
1671 /*
1672 * decrease number of queues by number of unallocated entries
1673 */
1674 bp->num_ethernet_queues -= diff;
1675 bp->num_queues = bp->num_ethernet_queues + bp->num_cnic_queues;
1676
1677 BNX2X_DEV_INFO("New queue configuration set: %d\n",
1678 bp->num_queues);
1685 } 1679 }
1686 1680
1687 bp->flags |= USING_MSIX_FLAG; 1681 bp->flags |= USING_MSIX_FLAG;