Hi Doug and Jason, This is really a resubmit of some code clean up we floated a while back. The main goal here is to clean up some of the stuff which should be in the uapi directory vs in in the driver directory. Then to break the single lock for recv wqe processing. The accompanying user bits should already be in a PR on GitHub. Change log documented below each commit message. This latest update is a rebase ontop of wip/for-testing also a small change in the first patch to remove the open coded container_of in favor of the helper routine. --- Kamenee Arumugam (3): IB/hfi1: Move rvt_cq_wc struct into uapi directory IB/hfi1: Move receive work queue struct into uapi directory IB/rdmavt: Fracture single lock used for posting and processing RWQEs drivers/infiniband/hw/hfi1/qp.c | 4 - drivers/infiniband/sw/rdmavt/cq.c | 192 +++++++++++++++++++---------- drivers/infiniband/sw/rdmavt/qp.c | 239 +++++++++++++++++++++++++----------- drivers/infiniband/sw/rdmavt/qp.h | 2 drivers/infiniband/sw/rdmavt/rc.c | 41 ++++-- drivers/infiniband/sw/rdmavt/srq.c | 69 ++++++---- include/rdma/rdmavt_cq.h | 22 ++- include/rdma/rdmavt_qp.h | 91 +++++++++++--- include/uapi/rdma/rvt-abi.h | 61 +++++++++ 9 files changed, 503 insertions(+), 218 deletions(-) create mode 100644 include/uapi/rdma/rvt-abi.h -- -Denny