summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2008-03-20 22:54:50 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2008-03-20 22:54:50 +0000
commite95ad2804c61202c397a7b666dbfa6f7b3a06f64 (patch)
treee1cd7342cc1ea995145d1ea1387df2adb2b8f29a /sys/arch
parent936c00f6dec1b6a5a4b5b14e6039d33e6d518070 (diff)
An overoptimization in r1.15 introduced an evil race, back it out. For some
reason this would have been blatant on sparc on motorola, one more proof mips is the ante${DEITY} yet fun to live with.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/mips64/mips64/exception.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/arch/mips64/mips64/exception.S b/sys/arch/mips64/mips64/exception.S
index b930ee848ed..11bb3a88711 100644
--- a/sys/arch/mips64/mips64/exception.S
+++ b/sys/arch/mips64/mips64/exception.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: exception.S,v 1.15 2007/10/18 18:15:40 miod Exp $ */
+/* $OpenBSD: exception.S,v 1.16 2008/03/20 22:54:49 miod Exp $ */
/*
* Copyright (c) 2002-2003 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -655,6 +655,9 @@ LEAF(proc_trampoline, 0)
mfc0 t0, COP_0_STATUS_REG
li t1, ~SR_INT_ENAB
and t0, t0, t1
+ mtc0 t0, COP_0_STATUS_REG
+ ITLBNOPFIX
+
ori t0, SR_EXL # restoring to user mode.
mtc0 t0, COP_0_STATUS_REG # must set exception level bit.
ITLBNOPFIX