RDMA/bnxt_re: Fix the compatibility flag for variable size WQE
authorSelvin Xavier <selvin.xavier@broadcom.com>
Wed, 4 Sep 2024 10:04:12 +0000 (03:04 -0700)
committerLeon Romanovsky <leon@kernel.org>
Mon, 9 Sep 2024 18:17:09 +0000 (21:17 +0300)
For older adapters that doesn't support variable size WQE,
driver is wrongly reporting that variable WQE is supported,
when the latest library is used.

Report the variable WQE capability only if the driver supports
it.

Fixes: 10a104c0debb ("RDMA/bnxt_re: Enable variable size WQEs for user space applications")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://patch.msgid.link/1725444253-13221-2-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/ib_verbs.c

index 82c1f3b2f8250db082099be9a7fc35f509a27fab..ecee691ed1e0a12f91e4676c6dbc8f6d3d43099f 100644 (file)
@@ -4272,7 +4272,8 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *ctx, struct ib_udata *udata)
                if (ureq.comp_mask & BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT) {
                        resp.comp_mask |= BNXT_RE_UCNTX_CMASK_HAVE_MODE;
                        resp.mode = rdev->chip_ctx->modes.wqe_mode;
-                       uctx->cmask |= BNXT_RE_UCNTX_CAP_VAR_WQE_ENABLED;
+                       if (resp.mode == BNXT_QPLIB_WQE_MODE_VARIABLE)
+                               uctx->cmask |= BNXT_RE_UCNTX_CAP_VAR_WQE_ENABLED;
                }
        }