This series from Pat & Brendan reworks the system memory pinning in our driver to better handle different types of memory buffers that are passed into. --- 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 all memory-pinning through hfi1's pinning interface drivers/infiniband/hw/hfi1/Makefile | 2 + drivers/infiniband/hw/hfi1/file_ops.c | 51 ++- 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 | 567 ++++++++++++++++++++++++ drivers/infiniband/hw/hfi1/pinning.c | 55 +++ drivers/infiniband/hw/hfi1/pinning.h | 94 ++++ 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_ioctl.h | 18 + include/uapi/rdma/hfi/hfi1_user.h | 31 +- include/uapi/rdma/rdma_user_ioctl.h | 3 + 21 files changed, 1046 insertions(+), 479 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