This is a respin on top of the latest rdma/for-next branch of the series being discussed on the list here: https://lore.kernel.org/linux-rdma/Y+EbyU4HkGyzPoFO@xxxxxxxxxx/T/#ma3d153151adf1dbe2b9800000fa9a01f95a80c1f We have added fixes lines, and Brendan has discovered a couple code hunks that do not need to be here in this submission. We have also removed the stats stuff until the user side code is readily available. --- Patrick Kelsey (3): IB/hfi1: Fix math bugs in hfi1_can_pin_pages() IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors IB/hfi1: Do SDMA memory-pinning through hfi1's pinning interface drivers/infiniband/hw/hfi1/Makefile | 2 + drivers/infiniband/hw/hfi1/init.c | 5 + drivers/infiniband/hw/hfi1/ipoib_tx.c | 7 +- drivers/infiniband/hw/hfi1/mmu_rb.c | 96 ++--- drivers/infiniband/hw/hfi1/mmu_rb.h | 30 +- drivers/infiniband/hw/hfi1/pin_system.c | 516 ++++++++++++++++++++++++ drivers/infiniband/hw/hfi1/pinning.c | 55 +++ drivers/infiniband/hw/hfi1/pinning.h | 88 ++++ drivers/infiniband/hw/hfi1/sdma.c | 33 +- drivers/infiniband/hw/hfi1/sdma.h | 77 ++-- drivers/infiniband/hw/hfi1/sdma_txreq.h | 2 + drivers/infiniband/hw/hfi1/trace_mmu.h | 4 - drivers/infiniband/hw/hfi1/user_pages.c | 61 ++- drivers/infiniband/hw/hfi1/user_sdma.c | 354 +++------------- drivers/infiniband/hw/hfi1/user_sdma.h | 24 +- drivers/infiniband/hw/hfi1/verbs.c | 5 +- drivers/infiniband/hw/hfi1/vnic_sdma.c | 6 +- include/uapi/rdma/hfi/hfi1_user.h | 31 +- 18 files changed, 918 insertions(+), 478 deletions(-) create mode 100644 drivers/infiniband/hw/hfi1/pin_system.c create mode 100644 drivers/infiniband/hw/hfi1/pinning.c create mode 100644 drivers/infiniband/hw/hfi1/pinning.h -- -Denny