This series of patches implement memory windows for the rdma_rxe driver. This is a shorter reimplementation of an earlier patch set. They apply to and depend on the current for-next linux rdma tree. Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> --- v8: Dropped wr.mw.flags in the rxe_send_wr struct in rdma_user_rxe.h. v7: Fixed a duplicate INIT_RDMA_OBJ_SIZE(ib_mw, ...) in rxe_verbs.c. v6: Added rxe_ prefix to subroutine names in lines that changed from Zhu's review of v5. v5: Fixed a typo in 10th patch. v4: Added a 10th patch to check when MRs have bound MWs and disallow dereg and invalidate operations. v3: cleaned up void return and lower case enums from Zhu's review. v2: cleaned up an issue in rdma_user_rxe.h cleaned up a collision in rxe_resp.c Bob Pearson (10): RDMA/rxe: Add bind MW fields to rxe_send_wr RDMA/rxe: Return errors for add index and key RDMA/rxe: Enable MW object pool RDMA/rxe: Add ib_alloc_mw and ib_dealloc_mw verbs RDMA/rxe: Replace WR_REG_MASK by WR_LOCAL_OP_MASK RDMA/rxe: Move local ops to subroutine RDMA/rxe: Add support for bind MW work requests RDMA/rxe: Implement invalidate MW operations RDMA/rxe: Implement memory access through MWs RDMA/rxe: Disallow MR dereg and invalidate when bound drivers/infiniband/sw/rxe/Makefile | 1 + drivers/infiniband/sw/rxe/rxe.c | 1 + drivers/infiniband/sw/rxe/rxe_comp.c | 5 +- drivers/infiniband/sw/rxe/rxe_loc.h | 36 +-- drivers/infiniband/sw/rxe/rxe_mr.c | 126 ++++++--- drivers/infiniband/sw/rxe/rxe_mw.c | 343 +++++++++++++++++++++++++ drivers/infiniband/sw/rxe/rxe_opcode.c | 11 +- drivers/infiniband/sw/rxe/rxe_opcode.h | 3 +- drivers/infiniband/sw/rxe/rxe_param.h | 19 +- drivers/infiniband/sw/rxe/rxe_pool.c | 45 ++-- drivers/infiniband/sw/rxe/rxe_pool.h | 8 +- drivers/infiniband/sw/rxe/rxe_req.c | 104 +++++--- drivers/infiniband/sw/rxe/rxe_resp.c | 111 +++++--- drivers/infiniband/sw/rxe/rxe_verbs.c | 15 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 48 +++- include/uapi/rdma/rdma_user_rxe.h | 10 + 16 files changed, 702 insertions(+), 184 deletions(-) create mode 100644 drivers/infiniband/sw/rxe/rxe_mw.c -- 2.27.0