git: cbda5351914d - stable/15 - if_bnxt: Never ARM Tx CQ as they are not interrupt-driven

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Thu, 29 Oct 2026 23:37:13 UTC
The branch stable/15 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=cbda5351914dabe40a8cc51008e168f398037b3e

commit cbda5351914dabe40a8cc51008e168f398037b3e
Author:     Sumit Saxena <sumit.saxena@broadcom.com>
AuthorDate: 2026-07-31 16:04:34 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-10-29 23:15:19 +0000

    if_bnxt: Never ARM Tx CQ as they are not interrupt-driven
    
    Tx completion rings are not interrupt-driven, so there is no need to
    ring the doorbell with CQ_ARMALL and toggle bits set for them. Stop
    arming the Tx CQ doorbell on P5+, which makes tx_cp_rings[]->toggle
    dead, so drop the now-unnecessary toggle bookkeeping for it in
    process_nq() too.
    
    Reviewed by:    gallatin
    Sponsored by:   Broadcom Inc.
    Differential Revision:  https://reviews.freebsd.org/D58616
    
    (cherry picked from commit 7781529f31b62a3071995b9f0446b8ded4ec8cf9)
---
 sys/dev/bnxt/bnxt_en/if_bnxt.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c
index b55af66b4aef..3a6fe887f7ca 100644
--- a/sys/dev/bnxt/bnxt_en/if_bnxt.c
+++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c
@@ -3503,7 +3503,7 @@ skip_def_cp_ring:
 			goto fail;
 
 		if (BNXT_CHIP_P5_PLUS(softc))
-			softc->db_ops.bnxt_db_tx_cq(&softc->tx_cp_rings[i], 1);
+			softc->db_ops.bnxt_db_tx_cq(&softc->tx_cp_rings[i], 0);
 
 		/* Allocate the TX ring */
 		rc = bnxt_hwrm_ring_alloc(softc,
@@ -4136,7 +4136,6 @@ process_nq(struct bnxt_softc *softc, uint16_t nqid)
 {
 	struct bnxt_cp_ring *cpr = &softc->nq_rings[nqid];
 	nq_cn_t *cmp = (nq_cn_t *) cpr->ring.vaddr;
-	struct bnxt_cp_ring *tx_cpr = &softc->tx_cp_rings[nqid];
 	struct bnxt_cp_ring *rx_cpr = &softc->rx_cp_rings[nqid];
 	bool v_bit = cpr->v_bit;
 	uint32_t cons = cpr->cons;
@@ -4154,7 +4153,6 @@ process_nq(struct bnxt_softc *softc, uint16_t nqid)
 		if (NQE_CN_TYPE(nq_type) != NQ_CN_TYPE_CQ_NOTIFICATION) {
 			 bnxt_process_async_msg(cpr, (tx_cmpl_t *)&cmp[cons]);
 		} else {
-			tx_cpr->toggle = NQE_CN_TOGGLE(cmp[cons].type);
 			rx_cpr->toggle = NQE_CN_TOGGLE(cmp[cons].type);
 			rx_cqe = true;
 		}