On Mon, Jul 31, 2023 at 01:16:48PM -0500, Bob Pearson wrote: > 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 mean just remove the function return in one patch, these functions are not supposed to fail anyhow. > 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. I didn't mean the complete_all hunk, I ment the __rxe_cleanup hunk :) Jason