Re: spin_lock error in arch/i386/kernel/time.c on APM resume

From: Zwane Mwaikambo
Date: Sat Mar 12 2005 - 15:01:32 EST


On Sat, 12 Mar 2005, George Anzinger wrote:

> I agree. Still in all that follows, no one has addressed the apparent race
> described above. The reason the system reported the errors that started this
> thread is that the APM restore code was trying to read the cmos clock (I
> assume to set the xtime clock) WHILE the timer interrupt code what trying to
> set the cmos clock from xtime.

Doesn't my reply explain the actual problem? The code path being;

arch/i386/kernel/apm.c
suspend()
write_seqlock_irq(xtime_lock)
...
write_sequnlock_irq(xtime_lock)
<interrupts enabled>
device_power_up()
timer_resume()
get_cmos_time();

So this covers the problem that the reporter reported, so yes it's setting
xtime but we shouldn't be taking interrupts in the first place, so i
posted the patch to cover that. APM was clearly violating PM resume
procedures.

Thanks,
Zwane


-
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/