From ed0ebb6e171125d99cf2be2f9c7e1378208df5c0 Mon Sep 17 00:00:00 2001 From: Ajit Khaparde Date: Mon, 23 Aug 2021 18:58:20 -0700 Subject: [PATCH] net/bnxt: fix VNIC config error in Rx queue start During port stop/start sequence the Thor FW is returning an error. This is because we are deriving incorrect active Rx ring and using that wrong information in the bnxt_vnic_rss_cfg HWRM command. Fix it by using the rx_queue_state from eth_dev. Fixes: 0105ea1296c9 ("net/bnxt: support runtime queue setup") Cc: stable@dpdk.org Signed-off-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_hwrm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index eb9de45cb9..f29d574235 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -5078,6 +5078,7 @@ static int bnxt_vnic_rss_configure_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic) { struct hwrm_vnic_rss_cfg_output *resp = bp->hwrm_cmd_resp_addr; + uint8_t *rxq_state = bp->eth_dev->data->rx_queue_state; struct hwrm_vnic_rss_cfg_input req = {.req_type = 0 }; struct bnxt_rx_queue **rxqs = bp->rx_queues; uint16_t *ring_tbl = vnic->rss_table; @@ -5111,7 +5112,7 @@ bnxt_vnic_rss_configure_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic) /* Find next active ring. */ for (cnt = 0; cnt < max_rings; cnt++) { - if (rxqs[k]->rx_started) + if (rxq_state[k] != RTE_ETH_QUEUE_STATE_STOPPED) break; if (++k == max_rings) k = 0; -- 2.20.1