There are several potential race conditions discovered in the rdma_rxe driver. These patches correct them. They mostly relate to races between normal operations and destroying objects. This patch series applies cleanly to current for-next. commit 3b87e0824272414cec79763afef6720c7c908c44 (for-next) Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> --- v2 Rebased to current for-next. Added 4 additional patches Bob Pearson (10): RDMA/rxe: Make rxe_alloc() take pool lock RDMA/rxe: Copy setup parameters into rxe_pool RDMA/rxe: Save object pointer in pool element RDMA/rxe: Combine rxe_add_index with rxe_alloc RDMA/rxe: Combine rxe_add_key with rxe_alloc RDMA/rxe: Fix potential race condition in rxe_pool RDMA/rxe: Separate out last rxe_drop_ref RDMA/rxe: Rewrite rxe_mcast.c RDMA/rxe: Fix ref error in rxe_av.c RDMA/rxe: Replace mr by rkey in responder resources drivers/infiniband/sw/rxe/rxe.c | 8 - drivers/infiniband/sw/rxe/rxe_av.c | 24 +- drivers/infiniband/sw/rxe/rxe_cq.c | 9 +- drivers/infiniband/sw/rxe/rxe_loc.h | 19 +- drivers/infiniband/sw/rxe/rxe_mcast.c | 210 ++++++++++----- drivers/infiniband/sw/rxe/rxe_mr.c | 11 +- drivers/infiniband/sw/rxe/rxe_mw.c | 28 +- drivers/infiniband/sw/rxe/rxe_net.c | 39 +-- drivers/infiniband/sw/rxe/rxe_pool.c | 374 ++++++++++++++++---------- drivers/infiniband/sw/rxe/rxe_pool.h | 86 +++--- drivers/infiniband/sw/rxe/rxe_qp.c | 11 +- drivers/infiniband/sw/rxe/rxe_req.c | 55 ++-- drivers/infiniband/sw/rxe/rxe_resp.c | 125 ++++++--- drivers/infiniband/sw/rxe/rxe_srq.c | 8 + drivers/infiniband/sw/rxe/rxe_verbs.c | 65 ++--- drivers/infiniband/sw/rxe/rxe_verbs.h | 4 +- 16 files changed, 611 insertions(+), 465 deletions(-) -- 2.30.2