> On Thu, 16 Dec 1999, Jamie Lokier wrote:
> > asm volatile("sti ; hlt" : : : "memory");
> The wakeup can still happen between sti and hlt so it doesn't fix the
> irq race condition.
The Intel Assembly Language Reference Manual states that the sti
instruction sets the interrupt flag to 1 and the CPU then responds
to external interrupts after executing the *next* instruction if the
next instruction allows the interrupt to remain enabled. So the
wakeup can only happen _after_ the hlt which is the desired effect.
I have implemented the above patch and tested overnight with no
more problems due to the idle task.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
Please read the FAQ at http://www.tux.org/lkml/