summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-05-09 19:19:27 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-05-09 19:19:27 +0000
commit16b4e7a6d0de31422f9d3501075b2ca24f7e86cc (patch)
tree1b11a685dd65b572ff9254c9ed2e515c5f84b3e1 /sys
parent316d478e2c695308738cbcc03c28e9ca66fa6bf5 (diff)
When entering the idle loop, do a real spl0 (processing soft interrupts)
instead of simply lowering cpl to zero.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mips64/mips64/context.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/arch/mips64/mips64/context.S b/sys/arch/mips64/mips64/context.S
index 795c3ae46a2..4f1b91d5c3e 100644
--- a/sys/arch/mips64/mips64/context.S
+++ b/sys/arch/mips64/mips64/context.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: context.S,v 1.10 2007/05/07 18:42:13 kettenis Exp $ */
+/* $OpenBSD: context.S,v 1.11 2007/05/09 19:19:26 miod Exp $ */
/*
* Copyright (c) 2002-2003 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -157,7 +157,12 @@ LEAF(idle, 0)
_idle:
PTR_S zero, curproc # set curproc NULL for stats
sw zero, cpl # lower to spl0
-
+ lw t0, ipending
+ beqz t0, 1f
+ nop
+ jal setsoftintr0
+ nop
+1:
mfc0 a0, COP_0_STATUS_REG
li a1, SR_INT_ENAB
or a0, a0, a1