git: kernel - Fix serious issue w/ smp_invltlb(), plus other issues (3)
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Oct 31 09:01:24 PDT 2010
commit b4b1a37a911531aa2eab596e4a240a9b403a0dc6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Oct 31 08:52:00 2010 -0700
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.
Summary of changes:
sys/platform/pc32/i386/mp_machdep.c | 1 +
sys/platform/pc32/isa/ipl.s | 18 ++++++++--
sys/platform/pc64/x86_64/ipl.s | 59 +++++++++++---------------------
sys/platform/pc64/x86_64/mp_machdep.c | 2 +
4 files changed, 38 insertions(+), 42 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b4b1a37a911531aa2eab596e4a240a9b403a0dc6
--
DragonFly BSD source repository
More information about the Commits
mailing list