]> git.droids-corp.org - dpdk.git/commitdiff
net/bnxt: fix ring group on Rx restart
authorSomnath Kotur <somnath.kotur@broadcom.com>
Wed, 27 Apr 2022 14:58:12 +0000 (20:28 +0530)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Tue, 10 May 2022 05:13:13 +0000 (07:13 +0200)
When an Rx queue is stopped and restarted, as part of that workflow,
for cards that have ring groups, we free and reallocate the ring group.
This new ring group is not communicated to the VNIC though via
HWRM_VNIC_CFG cmd.
Fix to issue HWRM_VNIC_CFG cmd on all adapters now in this scenario.

Fixes: ed0ae3502fc9 ("net/bnxt: update ring group after ring stop start")
Cc: stable@dpdk.org
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
drivers/net/bnxt/bnxt_rxq.c

index 8147404d9c776a408cedd7a07f7dd9fb10cb4f5f..9b5ff4ce2da37127ad791e62a86abd3954ee3723 100644 (file)
@@ -488,10 +488,11 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
        if (rc)
                return rc;
 
-       if (BNXT_CHIP_P5(bp)) {
-               /* Reconfigure default receive ring and MRU. */
-               bnxt_hwrm_vnic_cfg(bp, rxq->vnic);
-       }
+       if (BNXT_HAS_RING_GRPS(bp))
+               rxq->vnic->dflt_ring_grp = bp->grp_info[rx_queue_id].fw_grp_id;
+       /* Reconfigure default receive ring and MRU. */
+       bnxt_hwrm_vnic_cfg(bp, rxq->vnic);
+
        PMD_DRV_LOG(INFO, "Rx queue started %d\n", rx_queue_id);
 
        if (dev_conf->rxmode.mq_mode & RTE_ETH_MQ_RX_RSS_FLAG) {