bnxt_alloc_hwrm_rings() was duplicating a snippet of code that was
already present in bnxt_alloc_hwrm_rx_ring() with just one line/function
invocation missing. Add that line and replace the snippet of code
with a call to bnxt_hwrm_alloc_rx_ring

Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com>
---
 drivers/net/bnxt/bnxt_ring.c | 59 ++++--------------------------------
 1 file changed, 6 insertions(+), 53 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index ba23c1fa03..997dcdc28b 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -581,6 +581,7 @@ int bnxt_alloc_hwrm_rx_ring(struct bnxt *bp, int 
queue_index)
        struct bnxt_cp_ring_info *cpr = rxq->cp_ring;
        struct bnxt_ring *cp_ring = cpr->cp_ring_struct;
        struct bnxt_rx_ring_info *rxr = rxq->rx_ring;
+       struct bnxt_coal coal;
        int rc;
 
        /*
@@ -603,6 +604,9 @@ int bnxt_alloc_hwrm_rx_ring(struct bnxt *bp, int 
queue_index)
                bp->grp_info[queue_index].cp_fw_ring_id = cp_ring->fw_ring_id;
        }
 
+       bnxt_init_dflt_coal(&coal);
+       bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id);
+
        if (!BNXT_NUM_ASYNC_CPR(bp) && !queue_index) {
                /*
                 * If a dedicated async event completion ring is not enabled,
@@ -699,60 +703,9 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp)
        bnxt_init_all_rings(bp);
 
        for (i = 0; i < bp->rx_cp_nr_rings; i++) {
-               struct bnxt_rx_queue *rxq = bp->rx_queues[i];
-               struct bnxt_cp_ring_info *cpr = rxq->cp_ring;
-               struct bnxt_ring *cp_ring = cpr->cp_ring_struct;
-               struct bnxt_rx_ring_info *rxr = rxq->rx_ring;
-
-               /*
-                * Storage for the cp ring is allocated based on worst-case
-                * usage, the actual size to be used by hw is computed here.
-                */
-               cp_ring->ring_size = rxr->rx_ring_struct->ring_size * 2;
-
-               if (bp->eth_dev->data->scattered_rx)
-                       cp_ring->ring_size *= AGG_RING_SIZE_FACTOR;
-
-               cp_ring->ring_mask = cp_ring->ring_size - 1;
-
-               if (bnxt_alloc_cmpl_ring(bp, i, cpr))
-                       goto err_out;
-
-               if (BNXT_HAS_RING_GRPS(bp)) {
-                       bp->grp_info[i].fw_stats_ctx = cpr->hw_stats_ctx_id;
-                       bp->grp_info[i].cp_fw_ring_id = cp_ring->fw_ring_id;
-               }
-
-               bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id);
-               if (!BNXT_NUM_ASYNC_CPR(bp) && !i) {
-                       /*
-                        * If a dedicated async event completion ring is not
-                        * enabled, use the first completion ring as the default
-                        * completion ring for async event handling.
-                        */
-                       bp->async_cp_ring = cpr;
-                       rc = bnxt_hwrm_set_async_event_cr(bp);
-                       if (rc)
-                               goto err_out;
-               }
-
-               if (bnxt_alloc_rx_ring(bp, i))
-                       goto err_out;
-
-               if (bnxt_alloc_rx_agg_ring(bp, i))
+               rc = bnxt_alloc_hwrm_rx_ring(bp, i);
+               if (rc)
                        goto err_out;
-
-               if (bnxt_init_one_rx_ring(rxq)) {
-                       PMD_DRV_LOG(ERR, "bnxt_init_one_rx_ring failed!\n");
-                       bnxt_rx_queue_release_op(rxq);
-                       return -ENOMEM;
-               }
-               bnxt_db_write(&rxr->rx_db, rxr->rx_raw_prod);
-               bnxt_db_write(&rxr->ag_db, rxr->ag_raw_prod);
-               rxq->index = i;
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
-               bnxt_rxq_vec_setup(rxq);
-#endif
        }
 
        for (i = 0; i < bp->tx_cp_nr_rings; i++) {
-- 
2.28.0.497.g54e85e7

Reply via email to