kernel - Fix serious issue w/ smp_invltlb(), plus other issues (3)
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 31 Oct 2010 15:52:00 +0000 (08:52 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 31 Oct 2010 15:52:00 +0000 (08:52 -0700)
commitb4b1a37a911531aa2eab596e4a240a9b403a0dc6
treef98e345d541022a79cd00fead55597bfbfb286fe
parentedffa5ecab6c7bd72d007f2c5be3ba91a2546faf
kernel - Fix serious issue w/ smp_invltlb(), plus other issues (3)

* splz() and doreti on both i386 and x86_64 were leaving interrupts
  disabled through calls to e.g. sched_ithd() and IPI function callbacks.

  As before this can lead to a deadlock if these functions call
  smp_invltlb() or some other cpu calls smp_invltlb() while these
  functions are spinning on a full IPIQ.

* sti in appropriate places to fix the problem.
sys/platform/pc32/i386/mp_machdep.c
sys/platform/pc32/isa/ipl.s
sys/platform/pc64/x86_64/ipl.s
sys/platform/pc64/x86_64/mp_machdep.c