nice catch! Applied to x86/urgent.
I'm really curious: how did you find this bug? Did you see a CPU come up
as !CPU_DEAD?
please send a patch for the 32-bit side too, it has the same bug.
also, we might be safer if the wbinvd(), the CLI and the halt was in a
single assembly sequence:
if (cpu >= i486)
asm ("cli; wbinvd; cli; 1: hlt; jmp 1b")
else
asm ("cli; 1: hlt; jmp 1b")
to make sure the compiler doesnt ever insert something into this
codepath? [ And note the double cli which would be further
robustification - in theory we could get a spurious interrupt straight
after the wbinvd. ] Hm?
Ingo
--