mbox series

[for-next,v3,00/10] Correct race conditions in rdma_rxe

Message ID 20211022191824.18307-1-rpearsonhpe@gmail.com (mailing list archive)
Headers show
Series Correct race conditions in rdma_rxe | expand

Message

Bob Pearson Oct. 22, 2021, 7:18 p.m. UTC
There are several 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 71ee1f127543 ("Merge brank 'mlx5_mkey' into rdma.git for-next")

Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
v3
  Changed rxe_alloc to use GFP_KERNEL
  Addressed other comments by Jason Gunthorp
  Merged the previous 06/10 and 07/10 patches into one since they overlapped
  Added some minor cleanups as 10/10
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: 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
  RDMA/rxe: Minor cleanup in rxe_pool.c

 drivers/infiniband/sw/rxe/rxe.c       |   8 -
 drivers/infiniband/sw/rxe/rxe.h       |   1 +
 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  | 408 +++++++++++++++++---------
 drivers/infiniband/sw/rxe/rxe_pool.h  |  84 +++---
 drivers/infiniband/sw/rxe/rxe_qp.c    |  10 +-
 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 |  67 ++---
 drivers/infiniband/sw/rxe/rxe_verbs.h |   4 +-
 17 files changed, 653 insertions(+), 457 deletions(-)