[dpdk-dev] [PATCH] bnx2x: Correctly determine MSIX vector count
Harish Patil
harish.patil at qlogic.com
Tue Jun 21 07:55:19 CEST 2016
>
>From: "Charles (Chas) Williams" <ciwillia at brocade.com>
>
>If MSIX is available, the vector count given by the table size is one
>less than the actual count. This count also limits the receive and
>transmit queue resources the VF can support.
>
>Fixes: 540a211084a7 ("bnx2x: driver core")
>
>Signed-off-by: Chas Williams <ciwillia at brocade.com>
>---
> drivers/net/bnx2x/bnx2x.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
>index 6edb2f9..4be732f 100644
>--- a/drivers/net/bnx2x/bnx2x.c
>+++ b/drivers/net/bnx2x/bnx2x.c
>@@ -9570,8 +9570,10 @@ static int bnx2x_pci_get_caps(struct bnx2x_softc
>*sc)
> static void bnx2x_init_rte(struct bnx2x_softc *sc)
> {
> if (IS_VF(sc)) {
>- sc->max_tx_queues = BNX2X_VF_MAX_QUEUES_PER_VF;
>- sc->max_rx_queues = BNX2X_VF_MAX_QUEUES_PER_VF;
>+ sc->max_tx_queues = min(BNX2X_VF_MAX_QUEUES_PER_VF,
>+ sc->igu_sb_cnt);
>+ sc->max_rx_queues = min(BNX2X_VF_MAX_QUEUES_PER_VF,
>+ sc->igu_sb_cnt);
> } else {
> sc->max_tx_queues = 128;
> sc->max_rx_queues = 128;
>@@ -9713,7 +9715,7 @@ int bnx2x_attach(struct bnx2x_softc *sc)
> pci_read(sc,
> (sc->devinfo.pcie_msix_cap_reg + PCIR_MSIX_CTRL), &val,
> 2);
>- sc->igu_sb_cnt = (val & PCIM_MSIXCTRL_TABLE_SIZE);
>+ sc->igu_sb_cnt = (val & PCIM_MSIXCTRL_TABLE_SIZE) + 1;
> } else {
> sc->igu_sb_cnt = 1;
> }
>--
>2.5.5
>
>
Acked-by: Harish Patil <harish.patil at qlogic.com>
More information about the dev
mailing list