Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

RDMA/bnxt_re: Update ABI to pass wqe-mode to user space

Changing ucontext ABI response structure to pass wqe_mode to user library.
A flag in comp_mask has been set to indicate presence of wqe_mode.

Moved wqe-mode ABI to uapi/rdma/bnxt_re-abi.h

Link: https://lore.kernel.org/r/20210616202817.1185276-1-devesh.sharma@broadcom.com
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

authored by

Devesh Sharma and committed by
Jason Gunthorpe
87974051 84dcd8c7

+15 -7
+3
drivers/infiniband/hw/bnxt_re/ib_verbs.c
··· 3882 3882 resp.max_cqd = dev_attr->max_cq_wqes; 3883 3883 resp.rsvd = 0; 3884 3884 3885 + resp.comp_mask |= BNXT_RE_UCNTX_CMASK_HAVE_MODE; 3886 + resp.mode = rdev->chip_ctx->modes.wqe_mode; 3887 + 3885 3888 rc = ib_copy_to_udata(udata, &resp, min(udata->outlen, sizeof(resp))); 3886 3889 if (rc) { 3887 3890 ibdev_err(ibdev, "Failed to copy user context");
+2
drivers/infiniband/hw/bnxt_re/qplib_fp.h
··· 39 39 #ifndef __BNXT_QPLIB_FP_H__ 40 40 #define __BNXT_QPLIB_FP_H__ 41 41 42 + #include <rdma/bnxt_re-abi.h> 43 + 42 44 /* Few helper structures temporarily defined here 43 45 * should get rid of these when roce_hsi.h is updated 44 46 * in original code base
-6
drivers/infiniband/hw/bnxt_re/qplib_res.h
··· 45 45 #define CHIP_NUM_57504 0x1751 46 46 #define CHIP_NUM_57502 0x1752 47 47 48 - enum bnxt_qplib_wqe_mode { 49 - BNXT_QPLIB_WQE_MODE_STATIC = 0x00, 50 - BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01, 51 - BNXT_QPLIB_WQE_MODE_INVALID = 0x02 52 - }; 53 - 54 48 struct bnxt_qplib_drv_modes { 55 49 u8 wqe_mode; 56 50 /* Other modes to follow here */
+10 -1
include/uapi/rdma/bnxt_re-abi.h
··· 49 49 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18 50 50 51 51 enum { 52 - BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL 52 + BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL, 53 + BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL, 54 + }; 55 + 56 + enum bnxt_re_wqe_mode { 57 + BNXT_QPLIB_WQE_MODE_STATIC = 0x00, 58 + BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01, 59 + BNXT_QPLIB_WQE_MODE_INVALID = 0x02, 53 60 }; 54 61 55 62 struct bnxt_re_uctx_resp { ··· 69 62 __aligned_u64 comp_mask; 70 63 __u32 chip_id0; 71 64 __u32 chip_id1; 65 + __u32 mode; 66 + __u32 rsvd1; /* padding */ 72 67 }; 73 68 74 69 /*