]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/bnxt_re: Enable variable size WQEs for user space applications
authorSelvin Xavier <selvin.xavier@broadcom.com>
Mon, 19 Aug 2024 04:47:27 +0000 (21:47 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 27 Aug 2024 13:15:57 +0000 (10:15 -0300)
Add backward compatibility code to enable variable size WQEs only if the
user lib supports it.

Link: https://patch.msgid.link/r/1724042847-1481-6-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Hongguang Gao <hongguang.gao@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/bnxt_re/ib_verbs.c
include/uapi/rdma/bnxt_re-abi.h

index 2932db12995838b44dd23250dcd233cfc40e94e9..82444fd748f14ac8ce8e5392b801f7c55726834c 100644 (file)
@@ -4233,6 +4233,11 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *ctx, struct ib_udata *udata)
                        resp.comp_mask |= BNXT_RE_UCNTX_CMASK_POW2_DISABLED;
                        uctx->cmask |= BNXT_RE_UCNTX_CAP_POW2_DISABLED;
                }
+               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;
+               }
        }
 
        rc = ib_copy_to_udata(udata, &resp, min(udata->outlen, sizeof(resp)));
index 71140618700ae3b132ffc646a61b34f79f8eabba..6821002931c823a6709b577139ea5e2e41343119 100644 (file)
@@ -66,6 +66,7 @@ enum bnxt_re_wqe_mode {
 
 enum {
        BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01,
+       BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT = 0x02,
 };
 
 struct bnxt_re_uctx_req {