]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - kernel/posix-cpu-timers.c
[PATCH] posix-timers: exit path cleanup
[linux-2.6.git] / kernel / posix-cpu-timers.c
index ccb04683bf1860145651248003b4c1a256bf6288..92a038064628feebcbf167e65bae85767fffb5a7 100644 (file)
@@ -486,6 +486,9 @@ static void process_timer_rebalance(struct task_struct *p,
        struct task_struct *t = p;
        unsigned int nthreads = atomic_read(&p->signal->live);
 
+       if (!nthreads)
+               return;
+
        switch (clock_idx) {
        default:
                BUG();
@@ -1160,6 +1163,9 @@ static void check_process_timers(struct task_struct *tsk,
                unsigned long long sched_left, sched;
                const unsigned int nthreads = atomic_read(&sig->live);
 
+               if (!nthreads)
+                       return;
+
                prof_left = cputime_sub(prof_expires, utime);
                prof_left = cputime_sub(prof_left, stime);
                prof_left = cputime_div(prof_left, nthreads);