[Bug 82818] Kernel crash in check_process_timers, divide error

ake sandgren ake.sandgren at hpc2n.umu.se
Fri Feb 2 09:32:17 UTC 2007


Public bug reported:

Binary package hint: linux-source-2.6.12

In kernel/posix-cpu-timers.c check_process_timers, never kernels have a small fix that is missing from the 2.6.12 kernel.
Without the fix the kernel crashes.

This is part of the diff between 2.6.12-10 and a 2.6.15
with the two places which might get "divide error".
The second one is the one that have hit us multiple times the past weeks.

@@ -492,6 +486,9 @@ static void process_timer_rebalance(stru
        struct task_struct *t = p;
        unsigned int nthreads = atomic_read(&p->signal->live);

+       if (!nthreads)
+               return;
+
        switch (clock_idx) {
        default:
                BUG();
@@ -1158,6 +1165,9 @@ static void check_process_timers(struct
                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);

** Affects: linux-source-2.6.12 (Ubuntu)
     Importance: Undecided
         Status: Unconfirmed

-- 
Kernel crash in check_process_timers, divide error
https://launchpad.net/bugs/82818




More information about the kernel-bugs mailing list