On 7/31/23 13:11, Jason Gunthorpe wrote: > On Fri, Jul 21, 2023 at 03:50:16PM -0500, Bob Pearson wrote: >> @@ -175,16 +175,17 @@ static void rxe_elem_release(struct kref *kref) >> { >> struct rxe_pool_elem *elem = container_of(kref, typeof(*elem), ref_cnt); >> >> - complete(&elem->complete); >> + complete_all(&elem->complete); >> } >> >> -int __rxe_cleanup(struct rxe_pool_elem *elem, bool sleepable) >> +void __rxe_cleanup(struct rxe_pool_elem *elem, bool sleepable) >> { > > You should definately put this one change in its own patch doing just > that. > > Jason Please explain a little more. I only found this change because the change in rxe_complete to repeat the wait_for_completion call didn't work. This seemed to fix it but the man page and comments didn't explain complete_all very well. Bob