On Fri, May 10, 2019 at 12:33:18PM +0200, Sebastian Andrzej Siewior wrote: > On 2019-05-09 14:33:20 [-0500], minyard@xxxxxxx wrote: > > From: Corey Minyard <cminyard@xxxxxxxxxx> > > > > The function call do_wait_for_common() has a race condition that > > can result in lockups waiting for completions. Adding the thread > > to (and removing the thread from) the wait queue for the completion > > is done outside the do loop in that function. However, if the thread > > is woken up, the swake_up_locked() function will delete the entry > > from the wait queue. If that happens and another thread sneaks > > in and decrements the done count in the completion to zero, the > > loop will go around again, but the thread will no longer be in the > > wait queue, so there is no way to wake it up. > > applied, thank you. > > Sebastian Thanks a bunch. Do I need to do anything for backports? I'm pretty sure this goes back to 4.4. -corey