summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
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/amd64
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/amd64')
-rw-r--r--sys/arch/amd64/amd64/ipifuncs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/amd64/amd64/ipifuncs.c b/sys/arch/amd64/amd64/ipifuncs.c
index d8615ef350b..73fed196631 100644
--- a/sys/arch/amd64/amd64/ipifuncs.c
+++ b/sys/arch/amd64/amd64/ipifuncs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ipifuncs.c,v 1.11 2010/04/07 06:33:06 kettenis Exp $ */
+/* $OpenBSD: ipifuncs.c,v 1.12 2010/06/26 15:56:40 mlarkin Exp $ */
/* $NetBSD: ipifuncs.c,v 1.1 2003/04/26 18:39:28 fvdl Exp $ */
/*-
@@ -97,6 +97,7 @@ x86_64_ipi_nop(struct cpu_info *ci)
void
x86_64_ipi_halt(struct cpu_info *ci)
{
+ SCHED_ASSERT_UNLOCKED();
disable_intr();
ci->ci_flags &= ~CPUF_RUNNING;
wbinvd();