[lkml]   [2001]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectI hit the BUG() in schedule() ...

I am running a MIPS machine and hit the following BUG() in

struct mm_struct *mm = next->mm;
struct mm_struct *oldmm = prev->active_mm;
if (!mm) {
if (next->active_mm) BUG(); <======
next->active_mm = oldmm;
enter_lazy_tlb(oldmm, next, this_cpu);
} else {
if (next->active_mm != mm) BUG();
switch_mm(oldmm, mm, next, this_cpu);

The "next" processor is swapper.

I have not looked at it hard enough, but an initial investigation seems
to reveal the cause trivially.

In include/linux/sched.h, the "swapper" task is set such that 'mm' is
NULL and 'active_mm' is &init_mm. So obviously when we switch back to
"swapper" task, we will hit the BUG().

That sounds little too obvious to be true. What am I missing here?

Thanks in advance. Please cc your reply to this email account. I
appreciate that.


Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at
 \ /
  Last update: 2005-03-22 12:55    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean