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

[email protected] Wed, 14 May 2003 16:03:55 +0200
Newsgroups org.kernel.vger.linux-laptop,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Alex Riesen writes:
 > [email protected], Wed, May 14, 2003 15:04:38 +0200:
 > > Since 2.5.69-bk8 or so, apm.c will invoke restore_processor_state()
 > > at resume-time. This is needed to reinitialise the SYSENTER MSRs
 > > used by 2.5's new system call mechanism.
 > 
 > and it supposed to go oops?

Of course not. It doesn't oops my Dell Latitude: on that laptop it
prevents oopses since otherwise user-space processes will oops the kernel
as soon as they make a system call or return from a system call. But this
only happens if both the CPU and glibc are capable of using SYSENTER.

 > >  >  <6>note: kapmd[4] exited with preempt_count 2
 > > This I don't like. I'm not convinced the resume path is preempt-safe.
 > > Please try again, either with CONFIG_PREEMPT disabled, or with a
 > > preempt_disable() / preempt_enable() pair around apm.c's suspend code,
 > > like in the patch below. (Untested, you may need to stick an #include
 > > <preempt.h> somewhere in apm.c to make it compile.)
 > 
 > It changed things a bit. preempt_count is 3 now.
 > Oops didn't change.

Ok so it wasn't preempt.
Can you identify in which statement the oops occurs?
And can you confirm that commenting out the calls in apm.c to
save_processor_state() and restore_processor_state() eliminates the oops?

/Mikael