summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2014-02-02 22:49:39 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2014-02-02 22:49:39 +0000
commit9d60278c0234623b98d6186120a6172e290f4ea1 (patch)
treee1592bef77eae55f4c39390a579811a8ec4380ef
parent1602172a1dcdce9bafff7d06a8c5862310ce0a2c (diff)
Force an fpu context synchronization before halting secondary processors.
Similar to what other platforms do.
-rw-r--r--sys/arch/alpha/alpha/ipifuncs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/alpha/alpha/ipifuncs.c b/sys/arch/alpha/alpha/ipifuncs.c
index dd93f76f36a..84969d853da 100644
--- a/sys/arch/alpha/alpha/ipifuncs.c
+++ b/sys/arch/alpha/alpha/ipifuncs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ipifuncs.c,v 1.5 2014/02/01 21:19:02 miod Exp $ */
+/* $OpenBSD: ipifuncs.c,v 1.6 2014/02/02 22:49:38 miod Exp $ */
/* $NetBSD: ipifuncs.c,v 1.9 1999/12/02 01:09:11 thorpej Exp $ */
/*-
@@ -155,8 +155,9 @@ alpha_multicast_ipi(u_long cpumask, u_long ipimask)
void
alpha_ipi_halt(struct cpu_info *ci, struct trapframe *framep)
{
- /* Disable interrupts. */
- (void) splhigh();
+ SCHED_ASSERT_UNLOCKED();
+ fpusave_cpu(ci, 1);
+ (void)splhigh();
cpu_halt();
/* NOTREACHED */