On 1/28/22 12:42, Jason Gunthorpe wrote: > 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 Jason, I have these ready again. It is a little restructured but gets to the same place. Last time I sent things in you had a complaint but it got mangled somehow so I couldn't read it. Is there anything else I should be looking at before posting these again? Bob > >> 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