On Thu, Jan 27, 2022 at 03:37:29PM -0600, Bob Pearson wrote: > There are several race conditions discovered in the current rdma_rxe > > Bob Pearson (26): > RDMA/rxe: Move rxe_mcast_add/delete to rxe_mcast.c > RDMA/rxe: Move rxe_mcast_attach/detach to rxe_mcast.c > RDMA/rxe: Rename rxe_mc_grp and rxe_mc_elem > RDMA/rxe: Enforce IBA o10-2.2.3 > RDMA/rxe: Remove rxe_drop_all_macst_groups > RDMA/rxe: Remove qp->grp_lock and qp->grp_list I took these patches to for-next > RDMA/rxe: Use kzmalloc/kfree for mca > RDMA/rxe: Rename grp to mcg and mce to mca > RDMA/rxe: Introduce RXECB(skb) > RDMA/rxe: Split rxe_rcv_mcast_pkt into two phases > RDMA/rxe: Replace locks by rxe->mcg_lock > RDMA/rxe: Replace pool key by rxe->mcg_tree > RDMA/rxe: Remove key'ed object support > RDMA/rxe: Remove mcg from rxe pools > RDMA/rxe: Add code to cleanup mcast memory > RDMA/rxe: Add comments to rxe_mcast.c > RDMA/rxe: Separate code into subroutines I think you should try to get up to here done in one series and merged, it looked OK > RDMA/rxe: Convert mca read locking to RCU Not sure this can ever work.. > RDMA/rxe: Reverse the sense of RXE_POOL_NO_ALLOC > RDMA/rxe: Delete _locked() APIs for pool objects > RDMA/rxe: Replace obj by elem in declaration > RDMA/rxe: Replace red-black trees by xarrays > RDMA/rxe: Change pool locking to RCU > RDMA/rxe: Add wait_for_completion to pool objects > RDMA/rxe: Fix ref error in rxe_av.c > RDMA/rxe: Replace mr by rkey in responder resources These also seem reasonable, didn't follow why we needed the RCU patch? Jason