git: 7781529f31b6 - main - if_bnxt: Never ARM Tx CQ as they are not interrupt-driven
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 09 Oct 2026 10:12:52 UTC
The branch main has been updated by ssaxena:
URL: https://cgit.FreeBSD.org/src/commit/?id=7781529f31b62a3071995b9f0446b8ded4ec8cf9
commit 7781529f31b62a3071995b9f0446b8ded4ec8cf9
Author: Sumit Saxena <sumit.saxena@broadcom.com>
AuthorDate: 2026-07-31 16:04:34 +0000
Commit: Sumit Saxena <ssaxena@FreeBSD.org>
CommitDate: 2026-10-09 08:24:44 +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
MFC after: 2 weeks
Sponsored by: Broadcom Inc.
Differential Revision: https://reviews.freebsd.org/D58616
---
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 e0e606189fdb..2d996d80a0f5 100644
--- a/sys/dev/bnxt/bnxt_en/if_bnxt.c
+++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c
@@ -3758,7 +3758,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,
@@ -4405,7 +4405,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;
@@ -4423,7 +4422,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;
}