summaryrefslogtreecommitdiff
path: root/sys/arch/i386
diff options
context:
space:
mode:
authorMike Larkin <mlarkin@cvs.openbsd.org>2010-06-26 15:56:41 +0000
committerMike Larkin <mlarkin@cvs.openbsd.org>2010-06-26 15:56:41 +0000
commit3d11d69fe7cd386923ba3ef27c5f69e938111ff6 (patch)
treeb7857d1156b1354fba1c8d69e11657aba2abfa04 /sys/arch/i386
parentc41dacea5d46fd25dc3fe5adf753f764bb307018 (diff)
Don't try to halt an AP if holding sched_lock since that causes hangs
on resume. Fail early if this is detected, so that we have a chance to catch it. ok kettenis@, deraadt@
Diffstat (limited to 'sys/arch/i386')
-rw-r--r--sys/arch/i386/i386/ipifuncs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/i386/i386/ipifuncs.c b/sys/arch/i386/i386/ipifuncs.c
index 76c4df59186..3d2dcf64916 100644
--- a/sys/arch/i386/i386/ipifuncs.c
+++ b/sys/arch/i386/i386/ipifuncs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ipifuncs.c,v 1.16 2010/04/07 06:33:06 kettenis Exp $ */
+/* $OpenBSD: ipifuncs.c,v 1.17 2010/06/26 15:56:40 mlarkin Exp $ */
/* $NetBSD: ipifuncs.c,v 1.1.2.3 2000/06/26 02:04:06 sommerfeld Exp $ */
/*-
@@ -100,6 +100,7 @@ i386_ipi_nop(struct cpu_info *ci)
void
i386_ipi_halt(struct cpu_info *ci)
{
+ SCHED_ASSERT_UNLOCKED();
disable_intr();
ci->ci_flags &= ~CPUF_RUNNING;
wbinvd();