summaryrefslogtreecommitdiff
path: root/sys/arch/i386
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2008-04-13 16:11:29 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2008-04-13 16:11:29 +0000
commitd74f45e7cbd950f0542efb46ad331e44e3bdb19e (patch)
treede224cd8f218ccff3bbd2ee504141a4f1cddb1c4 /sys/arch/i386
parent05965f17677ef071bae9ad3e6ea2fc3ab30a2ef1 (diff)
lear CPUF_RUNNING when halting a CPU. Fixes problems with powering dowm
MP amd64 systems for quite a few people. ok deraadt@, krw@
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 84ebc69315e..83a3c944121 100644
--- a/sys/arch/i386/i386/ipifuncs.c
+++ b/sys/arch/i386/i386/ipifuncs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ipifuncs.c,v 1.10 2008/04/12 09:46:06 kettenis Exp $ */
+/* $OpenBSD: ipifuncs.c,v 1.11 2008/04/13 16:11:28 kettenis Exp $ */
/* $NetBSD: ipifuncs.c,v 1.1.2.3 2000/06/26 02:04:06 sommerfeld Exp $ */
/*-
@@ -95,6 +95,7 @@ void
i386_ipi_halt(struct cpu_info *ci)
{
disable_intr();
+ ci->ci_flags &= ~CPUF_RUNNING;
for(;;) {
asm volatile("hlt");