From 55ebb808a086a8f6b4d01231c383923aaeb6a03f Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Thu, 15 Jun 2006 20:11:15 +0400 Subject: [PATCH] --- yaml --- r: 27217 b: refs/heads/master c: 8f17fc20bfb75bcec4cfeda789738979c8338fdc h: refs/heads/master i: 27215: cf19f0122df269bbb4a67094fec53079c120285e v: v3 --- [refs] | 2 +- trunk/kernel/posix-cpu-timers.c | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a0090be2e09b..939263d9713b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 88d113601ca19c82feb038438c8c5db502d146f9 +refs/heads/master: 8f17fc20bfb75bcec4cfeda789738979c8338fdc diff --git a/trunk/kernel/posix-cpu-timers.c b/trunk/kernel/posix-cpu-timers.c index 520f6c59948d..9d9169aa2e24 100644 --- a/trunk/kernel/posix-cpu-timers.c +++ b/trunk/kernel/posix-cpu-timers.c @@ -1173,6 +1173,9 @@ static void check_process_timers(struct task_struct *tsk, } t = tsk; do { + if (unlikely(t->flags & PF_EXITING)) + continue; + ticks = cputime_add(cputime_add(t->utime, t->stime), prof_left); if (!cputime_eq(prof_expires, cputime_zero) && @@ -1193,11 +1196,7 @@ static void check_process_timers(struct task_struct *tsk, t->it_sched_expires > sched)) { t->it_sched_expires = sched; } - - do { - t = next_thread(t); - } while (unlikely(t->flags & PF_EXITING)); - } while (t != tsk); + } while ((t = next_thread(t)) != tsk); } }