On July 24, 2019 6:48:16 PM GMT+02:00, "Joel Fernandes (Google)" <j...@joelfernandes.org> wrote: >Previously a condition got missed where the pidfd waiters are awakened >before the exit_state gets set. This can result in a missed >notification >[1] and the polling thread waiting forever. > >It is fixed now, however it would be nice to avoid this kind of issue >going unnoticed in the future. So just add a warning to catch it in the >future. > >[1] >https://lore.kernel.org/lkml/20190717172100.261204-1-j...@joelfernandes.org/ > >Signed-off-by: Joel Fernandes (Google) <j...@joelfernandes.org> >--- > kernel/signal.c | 1 + > 1 file changed, 1 insertion(+) > >diff --git a/kernel/signal.c b/kernel/signal.c >index 91b789dd6e72..349f5a67f100 100644 >--- a/kernel/signal.c >+++ b/kernel/signal.c >@@ -1885,6 +1885,7 @@ static void do_notify_pidfd(struct task_struct >*task) > { > struct pid *pid; > >+ WARN_ON(task->exit_state == 0); > pid = task_pid(task); > wake_up_all(&pid->wait_pidfd); > }
Makes sense to me. I'm picking this up unless someone sees a problem with this patch. Reviewed-by: Christian Brauner <christ...@brauner.io>