X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fexit.c;h=c6d14b8008ddf3007831723fc1113cd63ad3cb46;hb=fba2afaaec790dc5ab4ae8827972f342211bbb86;hp=e93691e9b325221c00bf02586a7ef77e1c89b090;hpb=5dc8bf8132d59c03fe2562bce165c2f03f021687;p=linux-2.6-omap-h63xx.git diff --git a/kernel/exit.c b/kernel/exit.c index e93691e9b32..c6d14b8008d 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -83,6 +84,14 @@ static void __exit_signal(struct task_struct *tsk) sighand = rcu_dereference(tsk->sighand); spin_lock(&sighand->siglock); + /* + * Notify that this sighand has been detached. This must + * be called with the tsk->sighand lock held. Also, this + * access tsk->sighand internally, so it must be called + * before tsk->sighand is reset. + */ + signalfd_detach_locked(tsk); + posix_cpu_timers_exit(tsk); if (atomic_dec_and_test(&sig->count)) posix_cpu_timers_exit_group(tsk);