--- 77a750c7da306d8bdd4abd9fa23ed00c9f3aa846 +++ 6f9b4e8f0c5a92f166a9d88265c6874054a927d2 @@ -54,7 +54,6 @@ #include #include #include -#include "cred-internals.h" static void exit_mm(struct task_struct * tsk); @@ -92,6 +91,14 @@ static void __exit_signal(struct task_st posix_cpu_timers_exit_group(tsk); else { /* + * This can only happen if the caller is de_thread(). + * FIXME: this is the temporary hack, we should teach + * posix-cpu-timers to handle this case correctly. + */ + if (unlikely(has_group_leader_pid(tsk))) + posix_cpu_timers_exit_group(tsk); + + /* * If there is any task waiting for the group exit * then notify it: */