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 16:36:23 +0000 (09:36 -0700)
commitecf9dec6d00f4d98e84ad48221e0f3cee55459cb
tree1f6692037af3a117ca03263b3ea7ac2ce7ccf021
parentfcdf216d66d7208b64bfda331d8e004717805573
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