Re: 2.5.69+bk: oops in apmd after waking up from suspend mode

Alex Riesen <[email protected]> Mon, 19 May 2003 16:41:30 +0200
Newsgroups org.kernel.vger.linux-laptop,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Alex Riesen, Mon, May 19, 2003 14:31:19 +0200:
> > >EIP is at fix_processor_context+0x5f/0x100
> > >Process kapmd (pid: 4, threadinfo=c5f0e000 task=c5fbc640)
> > 
> > After receiving Alex' .config and gcc version (3.2.3), I've been
> > able to decipher this. current->mm is NULL in the kapmd task. The call
> > 
> > 	load_LDT(&current->mm->context);	/* This does lldt */
> > 
> > in fix_processor_context() computes the address of context as
> > (current->mm)+0x7c, which is 0x7c. load_LDT_nolock() dereferences
> > 0x7c+0x14 (void *segments = pc->ldt) and the oops follows.
> > 
> > As to _why_ kapmd's current->mm is NULL, I don't know. It isn't
> > when I test APM suspend in 2.5.69-bk. A lot of code dereferences
> > current->mm without checking, so I guess current->mm==NULL is a bug.
> > 
> 
> i just go and try it with the latest -bk.
> 

no change. Still oopses.

Is it safe to trace this path with printks? I'm about to put them in,
but a good advice could probably come before the compilation finishes.

-alex