summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2010-07-21 14:08:10 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2010-07-21 14:08:10 +0000
commit9131a6ee5832d2c6f2b1e83160310041b9c09dcf (patch)
tree1a05bdaa2c84f812a3b1073ea54c3111d16c6996 /sys/arch/i386/isa
parent1e391320a89a368a6bd23e358164aedbe4b983ce (diff)
Make sure that the FPU IPIs shoot down the right FPU context and not the FPU
context of some random process that happened to be switched onto the FPU after the decision was made to send the IPI.
Diffstat (limited to 'sys/arch/i386/isa')
-rw-r--r--sys/arch/i386/isa/npx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/i386/isa/npx.c b/sys/arch/i386/isa/npx.c
index 232886c0788..5f8c73defaf 100644
--- a/sys/arch/i386/isa/npx.c
+++ b/sys/arch/i386/isa/npx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: npx.c,v 1.48 2010/06/29 21:13:43 thib Exp $ */
+/* $OpenBSD: npx.c,v 1.49 2010/07/21 14:08:09 kettenis Exp $ */
/* $NetBSD: npx.c,v 1.57 1996/05/12 23:12:24 mycroft Exp $ */
#if 0
@@ -848,9 +848,9 @@ npxsave_proc(struct proc *p, int save)
IPRINTF(("%s: fp ipi to %s %s %lx\n", ci->ci_dev.dv_xname,
oci->ci_dev.dv_xname, save ? "save" : "flush", (u_long)p));
+ oci->ci_fpsaveproc = p;
i386_send_ipi(oci,
save ? I386_IPI_SYNCH_FPU : I386_IPI_FLUSH_FPU);
-
while (p->p_addr->u_pcb.pcb_fpcpu != NULL)
SPINLOCK_SPIN_HOOK;
}