summaryrefslogtreecommitdiffstats
path: root/kernel/exit.c
diff options
context:
space:
mode:
authorLinus Torvalds2005-10-27 18:07:33 +0200
committerLinus Torvalds2005-10-27 18:07:33 +0200
commita362f463a6d316d14daed0f817e151835ce97ff7 (patch)
tree99b510438f9c88860ae17f1233cf21be24a152e3 /kernel/exit.c
parent[PATCH] Fix cpu timers expiration time (diff)
downloadkernel-qcow2-linux-a362f463a6d316d14daed0f817e151835ce97ff7.tar.gz
kernel-qcow2-linux-a362f463a6d316d14daed0f817e151835ce97ff7.tar.xz
kernel-qcow2-linux-a362f463a6d316d14daed0f817e151835ce97ff7.zip
Revert "remove false BUG_ON() from run_posix_cpu_timers()"
This reverts commit 3de463c7d9d58f8cf3395268230cb20a4c15bffa. Roland has another patch that allows us to leave the BUG_ON() in place by just making sure that the condition it tests for really is always true. That goes in next. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/exit.c')
-rw-r--r--kernel/exit.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index 4897977a1f4b..3b25b182d2be 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -825,6 +825,14 @@ fastcall NORET_TYPE void do_exit(long code)
tsk->flags |= PF_EXITING;
+ /*
+ * Make sure we don't try to process any timer firings
+ * while we are already exiting.
+ */
+ tsk->it_virt_expires = cputime_zero;
+ tsk->it_prof_expires = cputime_zero;
+ tsk->it_sched_expires = 0;
+
if (unlikely(in_atomic()))
printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
current->comm, current->pid,