[dpdk-stable] [PATCH 18.11 12/19] net/bnxt: fix doorbell register offset for Tx ring

Somnath Kotur somnath.kotur at broadcom.com
Wed Dec 18 07:24:04 CET 2019


From: Ajit Khaparde <ajit.khaparde at broadcom.com>

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")

Signed-off-by: Rahul Gupta <rahul.gupta at broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
---
 drivers/net/bnxt/bnxt_ring.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index 0628a0b..c2c1dfa 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -486,12 +486,12 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp)
 		/* Tx ring */
 		rc = bnxt_hwrm_ring_alloc(bp, ring,
 					HWRM_RING_ALLOC_INPUT_RING_TYPE_TX,
-					idx, cpr->hw_stats_ctx_id,
+					i, cpr->hw_stats_ctx_id,
 					cp_ring->fw_ring_id);
 		if (rc)
 			goto err_out;
 
-		txr->tx_doorbell = (char *)bp->doorbell_base + idx * 0x80;
+		txr->tx_doorbell = (char *)bp->doorbell_base + i * 0x80;
 		txq->index = idx;
 		bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id);
 	}
-- 
2.10.1



More information about the stable mailing list