summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-07-16 20:21:21 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-07-16 20:21:21 +0000
commite0d9d1132e264ebd78135789336e0de2b6dafad7 (patch)
treee76ef915d5cb905512550b1cdfdbba2629d3bfde
parent2942f39fb8897d168dd496755ae5552acd4755c2 (diff)
Do not reenabled interrupts when processing a ddb trap, for bad things may
happen; from NetBSD
-rw-r--r--sys/arch/mips64/mips64/trap.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/arch/mips64/mips64/trap.c b/sys/arch/mips64/mips64/trap.c
index 78cafb30c45..23bf0317870 100644
--- a/sys/arch/mips64/mips64/trap.c
+++ b/sys/arch/mips64/mips64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.36 2007/05/25 20:47:19 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.37 2007/07/16 20:21:20 miod Exp $ */
/* tracked to 1.23 */
/*
@@ -199,12 +199,13 @@ trap(trapframe)
* If it was off disable all (splhigh) so we don't accidently
* enable it when doing a spllower().
*/
-/*XXX do in locore? */
if (trapframe->sr & SR_INT_ENAB) {
+ if (type != T_BREAK) {
#ifndef IMASK_EXTERNAL
- updateimask(trapframe->cpl);
+ updateimask(trapframe->cpl);
#endif
- enableintr();
+ enableintr();
+ }
} else
splhigh();