Messages in this thread | | | Date | Tue, 20 May 2003 12:48:20 +0200 | From | Alex Riesen <> | Subject | Re: 2.5.69+bk: oops in apmd after waking up from suspend mode |
| |
Carl-Daniel Hailfinger, Tue, May 20, 2003 12:39:54 +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(¤t->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. > > Could you try to compile with gcc-3.3? In another thread (2.5.69-mm6: > pccard oops) this helped IIRC. I'm suspecting gcc 3.2.3 generates > incorrect code for some cases.
I preferably not. Zwane already mentioned that current->mm allowed to be NULL for kernel threads, and i seen it be NULL even before suspending.
-alex
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |