summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamodharam Ammepalli <damodharam.ammepalli@broadcom.com>2024-12-17 15:56:47 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-01-09 13:31:57 +0100
commit2e719d89b9fad00d5a07c6cd399fd9f9d4d46202 (patch)
tree3adca2925ca02437ed651821de2b9753f0bfef58
parent3ae9ee7ff3b28a29fe0b91f730580c0544254043 (diff)
downloadlinux-2e719d89b9fad00d5a07c6cd399fd9f9d4d46202.tar.gz
linux-2e719d89b9fad00d5a07c6cd399fd9f9d4d46202.tar.bz2
linux-2e719d89b9fad00d5a07c6cd399fd9f9d4d46202.zip
RDMA/bnxt_re: Add send queue size check for variable wqe
[ Upstream commit d13be54dc18baee7a3e44349b80755a8c8205d3f ] For the fixed WQE case, HW supports 0xFFFF WQEs. For variable Size WQEs, HW treats this number as the 16 bytes slots. The maximum supported WQEs needs to be adjusted based on the number of slots. Set a maximum WQE limit for variable WQE scenario. Fixes: de1d364c3815 ("RDMA/bnxt_re: Add support for Variable WQE in Genp7 adapters") Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Signed-off-by: Damodharam Ammepalli <damodharam.ammepalli@broadcom.com> Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com> Link: https://patch.msgid.link/20241217102649.1377704-4-kalesh-anakkur.purayil@broadcom.com Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/infiniband/hw/bnxt_re/qplib_sp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_sp.c b/drivers/infiniband/hw/bnxt_re/qplib_sp.c
index 577a6eaca4ce..74c3f6b26c4d 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_sp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_sp.c
@@ -138,6 +138,10 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw,
attr->max_qp_wqes -= BNXT_QPLIB_RESERVED_QP_WRS + 1;
}
+ /* Adjust for max_qp_wqes for variable wqe */
+ if (cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE)
+ attr->max_qp_wqes = BNXT_VAR_MAX_WQE - 1;
+
attr->max_qp_sges = cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE ?
min_t(u32, sb->max_sge_var_wqe, BNXT_VAR_MAX_SGE) : 6;
attr->max_cq = le32_to_cpu(sb->max_cq);