]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/bnxt_re: Fix MSN table size for variable wqe mode
authorDamodharam Ammepalli <damodharam.ammepalli@broadcom.com>
Tue, 17 Dec 2024 10:26:48 +0000 (15:56 +0530)
committerLeon Romanovsky <leon@kernel.org>
Thu, 19 Dec 2024 11:57:19 +0000 (06:57 -0500)
For variable size wqe mode, the MSN table size should be
half the size of the SQ depth. Fixing this to avoid wrap
around problems in the retransmission path.

Fixes: de1d364c3815 ("RDMA/bnxt_re: Add support for Variable WQE in Genp7 adapters")
Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
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-5-kalesh-anakkur.purayil@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/qplib_fp.c

index d8a2a929bbe325c526bf5896f96ac14dd88a0060..951ad90f5aa9629edaed3c2744ebe2f38915e863 100644 (file)
@@ -1033,7 +1033,12 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp)
                                    : 0;
        /* Update msn tbl size */
        if (qp->is_host_msn_tbl && psn_sz) {
-               hwq_attr.aux_depth = roundup_pow_of_two(bnxt_qplib_set_sq_size(sq, qp->wqe_mode));
+               if (qp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC)
+                       hwq_attr.aux_depth =
+                               roundup_pow_of_two(bnxt_qplib_set_sq_size(sq, qp->wqe_mode));
+               else
+                       hwq_attr.aux_depth =
+                               roundup_pow_of_two(bnxt_qplib_set_sq_size(sq, qp->wqe_mode)) / 2;
                qp->msn_tbl_sz = hwq_attr.aux_depth;
                qp->msn = 0;
        }