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
9p
adfs
affs
afs
autofs
autofs4
befs
bfs
cifs
coda
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2
ext3
fat
freevxfs
fuse
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd
jffs
jffs2
jfs
lockd
minix
msdos
ncpfs
nfs
nfs_common
nfsd
nls
ntfs
openpromfs
partitions
proc
qnx4
ramfs
reiserfs
relayfs
romfs
smbfs
sysfs
sysv
udf
ufs
vfat
xfs
Kconfig -rw-r--r-- 63.2 KB
Kconfig.binfmt -rw-r--r-- 5.3 KB
Makefile -rw-r--r-- 3.2 KB
aio.c -rw-r--r-- 43.9 KB
attr.c -rw-r--r-- 4.4 KB
bad_inode.c -rw-r--r-- 2.8 KB
binfmt_aout.c -rw-r--r-- 14.9 KB
binfmt_elf.c -rw-r--r-- 45.3 KB
binfmt_elf_fdpic.c -rw-r--r-- 30.3 KB
binfmt_em86.c -rw-r--r-- 2.8 KB
binfmt_flat.c -rw-r--r-- 25.8 KB
binfmt_misc.c -rw-r--r-- 15.6 KB
binfmt_script.c -rw-r--r-- 2.7 KB
binfmt_som.c -rw-r--r-- 7.7 KB
bio.c -rw-r--r-- 28.6 KB
block_dev.c -rw-r--r-- 21.7 KB
buffer.c -rw-r--r-- 81.9 KB
char_dev.c -rw-r--r-- 9.5 KB
compat.c -rw-r--r-- 45.5 KB
compat_ioctl.c -rw-r--r-- 85.0 KB
dcache.c -rw-r--r-- 43.9 KB
dcookies.c -rw-r--r-- 6.2 KB
direct-io.c -rw-r--r-- 34.5 KB
dnotify.c -rw-r--r-- 4.3 KB
dquot.c -rw-r--r-- 51.7 KB
eventpoll.c -rw-r--r-- 44.1 KB
exec.c -rw-r--r-- 34.5 KB
fcntl.c -rw-r--r-- 13.6 KB
fifo.c -rw-r--r-- 3.2 KB
file.c -rw-r--r-- 8.8 KB
file_table.c -rw-r--r-- 6.2 KB
filesystems.c -rw-r--r-- 5.2 KB
fs-writeback.c -rw-r--r-- 19.4 KB
inode.c -rw-r--r-- 35.8 KB
inotify.c -rw-r--r-- 26.6 KB
ioctl.c -rw-r--r-- 3.9 KB
ioprio.c -rw-r--r-- 3.5 KB
libfs.c -rw-r--r-- 15.2 KB
locks.c -rw-r--r-- 55.0 KB
mbcache.c -rw-r--r-- 18.2 KB
mpage.c -rw-r--r-- 20.6 KB
namei.c -rw-r--r-- 59.9 KB
namespace.c -rw-r--r-- 35.0 KB
nfsctl.c -rw-r--r-- 2.5 KB
open.c -rw-r--r-- 23.6 KB
pipe.c -rw-r--r-- 18.3 KB
posix_acl.c -rw-r--r-- 8.5 KB
quota.c -rw-r--r-- 8.6 KB
quota_v1.c -rw-r--r-- 5.7 KB
quota_v2.c -rw-r--r-- 20.1 KB
read_write.c -rw-r--r-- 15.8 KB
readdir.c -rw-r--r-- 6.7 KB
select.c -rw-r--r-- 12.4 KB
seq_file.c -rw-r--r-- 9.5 KB
stat.c -rw-r--r-- 9.2 KB
super.c -rw-r--r-- 20.1 KB
xattr.c -rw-r--r-- 11.0 KB
xattr_acl.c -rw-r--r-- 2.3 KB

back to top