Hi Jason/Leon/Sagi, This series adds a support for draining a QP that is associated with a SRQ (Shared Receive Queue). Leakage problem can occur if we won't treat Last WQE Reached event. In the series, that is based on some old series I've send during 2018, I used a different approach and handled the event in the RDMA core, as was suggested in discussion in the mailing list. I've updated RDMA ULPs. Most of them were trivial except IPoIB that was handling the Last WQE reached in the ULP. I've tested this series with NVMf/RDMA on RoCE. Max Gurtovoy (6): IB/core: add support for draining Shared receive queues IB/isert: remove the handling of last WQE reached event RDMA/srpt: remove the handling of last WQE reached event nvmet-rdma: remove the handling of last WQE reached event svcrdma: remove the handling of last WQE reached event RDMA/IPoIB: remove the handling of last WQE reached event drivers/infiniband/core/verbs.c | 83 +++++++++++++++++++++++- drivers/infiniband/ulp/ipoib/ipoib.h | 33 +--------- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 71 ++------------------ drivers/infiniband/ulp/isert/ib_isert.c | 3 - drivers/infiniband/ulp/srpt/ib_srpt.c | 5 -- drivers/nvme/target/rdma.c | 4 -- include/rdma/ib_verbs.h | 2 + net/sunrpc/xprtrdma/svc_rdma_transport.c | 1 - 8 files changed, 92 insertions(+), 110 deletions(-) -- 2.18.1