net/bnxt: fix doorbell register offset for Tx ring
authorAjit Khaparde <ajit.khaparde@broadcom.com>
Wed, 17 Jul 2019 10:41:31 +0000 (16:11 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 23 Jul 2019 12:31:35 +0000 (14:31 +0200)
For Tx-ring # 104 and higher, the doorbell register was incorrectly
configured due to which FW was not able to receive the notification
of packet to transmit.
With this fix, user can run traffic upto 256 rings.

Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
Cc: stable@dpdk.org
Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_ring.c

index 7453d4b..9b19459 100644 (file)
@@ -639,12 +639,12 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp)
                ring_type = HWRM_RING_ALLOC_INPUT_RING_TYPE_TX;
                rc = bnxt_hwrm_ring_alloc(bp, ring,
                                          ring_type,
-                                         idx, cpr->hw_stats_ctx_id,
+                                         i, cpr->hw_stats_ctx_id,
                                          cp_ring->fw_ring_id);
                if (rc)
                        goto err_out;
 
-               bnxt_set_db(bp, &txr->tx_db, ring_type, idx, ring->fw_ring_id);
+               bnxt_set_db(bp, &txr->tx_db, ring_type, i, ring->fw_ring_id);
                txq->index = idx;
                bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id);
        }