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

Jiri Kosina
2008-04-10T23:25:27Z

On Thu, 10 Apr 2008, Pavel Machek wrote:

> > > > 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.
> > > They are executed with interrupts disabled, on one CPU.
> > So, any idea why mce_resume() -> mce_init() -> debug_smp_processor_id()
> > triggers the warning? Apparently preempt_count is zero, irqs_disabled()
> > returns false, and cpumask_of_cpu() is not equal to current->cpus_allowed.
> We are single-threaded because we 'unplugged' all the other cpus... but
> I'm not sure the BUG() code realises that...

That's unrelated, right? The real problem here is that irqs_disabled()
call inside debug_smp_processor_id() signalized that interrupts are
enabled, and that (correctly) triggered the bug.

--
Jiri Kosina
SUSE Labs