This patch series completes the separation of the mc_grp and mc_elem object pools from rxe_pools.c and moving of their code to rxe_mcast.c. This makes sense because these two pools are different from the other pools as the only ones that do not share objects with rdma-core and that use key's instead of indices to enable looking up objects. This change will enable a significant simplification of the normal object pools. These patches correspond to 08-11/11 of the previous version of this series. The earler patches have been accepted. Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> --- v12 Addressed issues raised by Jason Gunthorpe. Returned a warning if rdma-core fails to cleanup mcast memory. Split the 'cleanup patch' into more managable patches. Fixed an error in the rcu patch by moving the kfree and rxe_drop_ref(qp) to a call_rcu() routine. v11 Restructured the patch series to simplify it and make each patch simpler. Addressed some additional issues raised by Jason Gunthorpe in the review of that last version. v10 Corrected issues reported by Jason Gunthorpe Isolated patches 01-17 separate from the remaining patches. They will be submitted later v9 Corrected issues reported by Jason Gunthorpe, Converted locking in rxe_mcast.c and rxe_pool.c to use RCU Split up the patches into smaller changes v8 Fixed an additional race in 3/8 which was not handled correctly. v7 Corrected issues reported by Jason Gunthorpe Link: https://lore.kernel.org/linux-rdma/20211207190947.GH6385@xxxxxxxxxx/ Link: https://lore.kernel.org/linux-rdma/20211207191857.GI6385@xxxxxxxxxx/ Link: https://lore.kernel.org/linux-rdma/20211207192824.GJ6385@xxxxxxxxxx/ v6 Fixed a kzalloc flags bug. Fixed comment bug reported by 'Kernel Test Robot'. Changed type of rxe_pool.c in __rxe_fini(). v5 Removed patches already accepted into for-next and addressed comments from Jason Gunthorpe. v4 Restructured patch series to change to xarray earlier which greatly simplified the changes. Rebased to current for-next 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 (6): RDMA/rxe: Add code to cleanup mcast memory RDMA/rxe: Collect init code for mca in a subroutine RDMA/rxe: Collect cleanup mca code in a subroutine RDMA/rxe: Cleanup rxe_mcast.c RDMA/rxe: For mcast copy qp list to temp array RDMA/rxe: Convert mca read locking to RCU drivers/infiniband/sw/rxe/rxe.c | 2 + drivers/infiniband/sw/rxe/rxe_loc.h | 1 + drivers/infiniband/sw/rxe/rxe_mcast.c | 289 ++++++++++++++++++++------ drivers/infiniband/sw/rxe/rxe_recv.c | 107 ++++++---- drivers/infiniband/sw/rxe/rxe_verbs.h | 3 + 5 files changed, 298 insertions(+), 104 deletions(-) This patch series applies to the current version of wip/jgg-for-next base-commit: 3810c1a1cbe8f3157f644b4e42f6c0157dfd22cb -- 2.32.0