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

From: Jiri Kosina
Date: Thu Apr 10 2008 - 19:25:45 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/