On Fri, Feb 25, 2022 at 01:57:49PM -0600, Bob Pearson wrote: > Use rcu_read_lock() for protecting read side operations in rxe_pool.c. > > Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> > --- > drivers/infiniband/sw/rxe/rxe_pool.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c > index 1d1e10290991..713df1ce2bbc 100644 > --- a/drivers/infiniband/sw/rxe/rxe_pool.c > +++ b/drivers/infiniband/sw/rxe/rxe_pool.c > @@ -202,16 +202,15 @@ int __rxe_add_to_pool(struct rxe_pool *pool, struct rxe_pool_elem *elem) > void *rxe_pool_get_index(struct rxe_pool *pool, u32 index) > { > struct rxe_pool_elem *elem; > - unsigned long flags; > void *obj; > > - spin_lock_irqsave(&pool->xa.xa_lock, flags); > + rcu_read_lock(); > elem = xa_load(&pool->xa, index); > if (elem && elem->enabled && kref_get_unless_zero(&elem->ref_cnt)) > obj = elem->obj; > else > obj = NULL; > - spin_unlock_irqrestore(&pool->xa.xa_lock, flags); > + rcu_read_unlock(); Where is the kfree_rcu to go along with this? Jason