From 2a580b30cf26736e4921490276ffd3ebb20990de Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 14 Sep 2026 11:37:23 -0400 Subject: [PATCH] cxgbe: Query the ability to use RDMA WRITE_WITH_IMMEDIATE requests Sponsored by: Chelsio Communications --- sys/dev/cxgbe/common/common.h | 1 + sys/dev/cxgbe/t4_main.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/sys/dev/cxgbe/common/common.h b/sys/dev/cxgbe/common/common.h index fcc728a8bf31..4833678ceff1 100644 --- a/sys/dev/cxgbe/common/common.h +++ b/sys/dev/cxgbe/common/common.h @@ -470,6 +470,7 @@ struct adapter_params { bool fr_nsmr_tpte_wr_support; /* FW support for FR_NSMR_TPTE_WR */ bool dev_512sgl_mr; /* FW support for 512 SGL per FR MR */ bool viid_smt_extn_support; /* FW returns vin, vfvld & smt index? */ + bool write_w_imm_support; /* FW supports WRITE_WITH_IMMEDIATE */ unsigned int max_pkts_per_eth_tx_pkts_wr; uint8_t nsched_cls; /* # of usable sched classes per port */ diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 573c8f71b084..fb3be3d1e71d 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -5973,6 +5973,11 @@ get_params__post_init(struct adapter *sc) sc->vres.srq.size = val[3] - val[2] + 1; sc->params.max_ordird_qp = val[4]; sc->params.max_ird_adapter = val[5]; + + param[0] = FW_PARAM_DEV(RDMA_WRITE_WITH_IMM); + rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, param, val); + if (rc == 0 && val[0] != 0) + sc->params.write_w_imm_support = true; } if (sc->iscsicaps) { param[0] = FW_PARAM_PFVF(ISCSI_START);