This patch set contributes version 7 of the SoftiWarp driver, as originally introduced to the list Oct 6th, 2017. SoftiWarp (siw) implements the iWarp RDMA protocol over kernel TCP sockets. The driver integrates with the linux-rdma framework. Mainly in response to the various helpful feedback, I fixed the following issues: 1. The code now relies on proper object management provided by the RDMA midlayer. With that, reference counting for PD's, CQ's and SRQ's got dropped. The corresponding files siw_obj.[ch] are removed. 2. The code now supports multiple user mmap operations of the same object (CQ, SQ, RQ, SRQ array) during its lifetime. To efficiently maintain the potentially large number of objects, those are now kept in a user context private cyclic xarray. 3. siw private memory access flags definition got dropped in favor of ib_access_flags. 4. Added code to consistently check complete STag during memory access - checking the user controlled 8 bit 'key' field was inconsistent and partially missing. We maintain a snapshot of the current code at https://github.com/zrlio/softiwarp-for-linux-rdma.git within branch 'siw-for-rdma-next-v7'. The matching siw user library is maintained at https://github.com/zrlio/softiwarp-user-for-linux-rdma.git. The relevant branch name is 'siw-for-rdma-next-v7'. As always, I highly appreciate your feedback. Thanks very much for your time and help! Bernard. Bernard Metzler (12): iWarp wire packet format SIW main include file SIW network and RDMA core interface SIW connection management SIW application interface SIW application buffer management SIW queue pair methods SIW transmit path SIW receive path SIW completion queue methods SIW debugging SIW addition to kernel build environment MAINTAINERS | 579 ++++-- drivers/infiniband/Kconfig | 1 + drivers/infiniband/sw/Makefile | 1 + drivers/infiniband/sw/siw/Kconfig | 17 + drivers/infiniband/sw/siw/Makefile | 12 + drivers/infiniband/sw/siw/iwarp.h | 379 ++++ drivers/infiniband/sw/siw/siw.h | 733 ++++++++ drivers/infiniband/sw/siw/siw_cm.c | 2106 ++++++++++++++++++++++ drivers/infiniband/sw/siw/siw_cm.h | 121 ++ drivers/infiniband/sw/siw/siw_cq.c | 109 ++ drivers/infiniband/sw/siw/siw_debug.c | 91 + drivers/infiniband/sw/siw/siw_debug.h | 40 + drivers/infiniband/sw/siw/siw_main.c | 711 ++++++++ drivers/infiniband/sw/siw/siw_mem.c | 464 +++++ drivers/infiniband/sw/siw/siw_mem.h | 53 + drivers/infiniband/sw/siw/siw_qp.c | 1354 ++++++++++++++ drivers/infiniband/sw/siw/siw_qp_rx.c | 1520 ++++++++++++++++ drivers/infiniband/sw/siw/siw_qp_tx.c | 1289 +++++++++++++ drivers/infiniband/sw/siw/siw_verbs.c | 1841 +++++++++++++++++++ drivers/infiniband/sw/siw/siw_verbs.h | 84 + include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + include/uapi/rdma/siw_user.h | 186 ++ 22 files changed, 11559 insertions(+), 133 deletions(-) create mode 100644 drivers/infiniband/sw/siw/Kconfig create mode 100644 drivers/infiniband/sw/siw/Makefile create mode 100644 drivers/infiniband/sw/siw/iwarp.h create mode 100644 drivers/infiniband/sw/siw/siw.h create mode 100644 drivers/infiniband/sw/siw/siw_cm.c create mode 100644 drivers/infiniband/sw/siw/siw_cm.h create mode 100644 drivers/infiniband/sw/siw/siw_cq.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.h create mode 100644 drivers/infiniband/sw/siw/siw_main.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.h create mode 100644 drivers/infiniband/sw/siw/siw_qp.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_rx.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_tx.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.h create mode 100644 include/uapi/rdma/siw_user.h -- 2.17.2