On Thu, Mar 17, 2022 at 08:55:12PM -0500, Bob Pearson wrote: > +int __rxe_cleanup(struct rxe_pool_elem *elem) > +{ > + struct rxe_pool *pool = elem->pool; > + static int timeout = RXE_POOL_TIMEOUT; > + int ret, err = 0; > + > + __rxe_put(elem); Like here for instance, we could just put the xa_erase And why is it safe to call put then continue to touch elem ? There is a kfree(elem) in rxe_elem_release() Jason