Re: BUG: using smp_processor_id() during suspend with 2.6.25-rc8

Andi Kleen
2008-04-07T22:19:47Z

On Tue, Apr 08, 2008 at 12:11:17AM +0200, Jiri Kosina wrote:
> On Tue, 8 Apr 2008, Andi Kleen wrote:
>
> > > I know. However preempt_count is a little bit inconsistent in such cases
> > > though.
> > And? interrupts off beats preempt count anyways. Why did you write the
> > patch? Was there a (incorrect) warning triggered?
>
> Reported at http://lkml.org/lkml/2008/4/7/130
>
> BTW is also mce_init() (called from mce_resume()) guaranteed to run with
> IRQs off?

[cc rafael]

The mce resume is a sysdev.

sysdevs were always supposed to run completely with interrupts off. If they
don't anymore that's some kind of higher level resume code bug which you need
to fix there, not hack around in the low level code.

If it does that it likely broke more code too.

Obviously turning on preemption anywhere around the machine check is
fatal because it touches CPU state and if you reschedule you could
switch to another CPU and change or access the wrong CPU's state.

-Andi