https://github.com/torvalds/linux
Revision 3de463c7d9d58f8cf3395268230cb20a4c15bffa authored by Oleg Nesterov on 24 October 2005, 10:34:03 UTC, committed by Linus Torvalds on 24 October 2005, 15:12:35 UTC
do_exit() clears ->it_##clock##_expires, but nothing prevents
another cpu to attach the timer to exiting process after that.

After exit_notify() does 'write_unlock_irq(&tasklist_lock)' and
before do_exit() calls 'schedule() local timer interrupt can find
tsk->exit_state != 0. If that state was EXIT_DEAD (or another cpu
does sys_wait4) interrupted task has ->signal == NULL.

At this moment exiting task has no pending cpu timers, they were cleaned
up in __exit_signal()->posix_cpu_timers_exit{,_group}(), so we can just
return from irq.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent 108150e
History
Tip revision: 3de463c7d9d58f8cf3395268230cb20a4c15bffa authored by Oleg Nesterov on 24 October 2005, 10:34:03 UTC
[PATCH] posix-timers: remove false BUG_ON() from run_posix_cpu_timers()
Tip revision: 3de463c
File Mode Size
Documentation
arch
crypto
drivers
fs
include
init
ipc
kernel
lib
mm
net
scripts
security
sound
usr
.gitignore -rw-r--r-- 391 bytes
COPYING -rw-r--r-- 18.3 KB
CREDITS -rw-r--r-- 87.1 KB
Kbuild -rw-r--r-- 1.2 KB
MAINTAINERS -rw-r--r-- 59.6 KB
Makefile -rw-r--r-- 42.5 KB
README -rw-r--r-- 14.4 KB
REPORTING-BUGS -rw-r--r-- 3.0 KB

README

back to top