diff options
author | Alexander Gordeev <agordeev@redhat.com> | 2014-02-18 05:07:54 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-18 15:33:29 -0500 |
commit | a5444b17478a7bf32cea1864e7923ef1da7fb215 (patch) | |
tree | 1d1474848307e201092829bc769dfb5928e51aa6 /drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |
parent | f2a2dfeb9431325b40317c9733d8a9536001d15a (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/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 46 |
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; |