Kernel crash in check_process_timers, divide error

Bug #82818 reported by ake sandgren
254
Affects Status Importance Assigned to Milestone
linux-source-2.6.12 (Ubuntu)
Invalid
Undecided
Brian Murray

Bug Description

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);

Revision history for this message
Brian Murray (brian-murray) wrote :

We are closing this bug report as it concerns the 2.6.12 kernel which was part of Breezy which is no longer supported. However, please reopen it if it is still an issue with a supported version of Ubuntu and feel free to submit bug reports in the future.

Changed in linux-source-2.6.12:
assignee: nobody → brian-murray
status: Unconfirmed → Rejected
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.