summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2004-06-23 00:30:37 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2004-06-23 00:30:37 +0000
commit9e7ff69031f171313ebf79305f2518af6f10a801 (patch)
tree83b26e0bb34487b77f4631387e728cfab57ca618 /sys
parent7c23bda801e5ac60151ea35df9e3957d4f780faa (diff)
Since the NMI interrupt source on 88110 is, well, non maskable, it is
possible to receive it during autoconf. In this case, do not enable _other_ interrupts while we are servicing it. Note that, on the MVME197, since we are using the BUG for console output during autoconf, it is still possible to abort the bootstrap and return to the BUG with the NMI/ABORT switch.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mvme88k/mvme88k/machdep.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/sys/arch/mvme88k/mvme88k/machdep.c b/sys/arch/mvme88k/mvme88k/machdep.c
index 97b3eb19477..aa436d74ffa 100644
--- a/sys/arch/mvme88k/mvme88k/machdep.c
+++ b/sys/arch/mvme88k/mvme88k/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.142 2004/05/06 18:32:08 miod Exp $ */
+/* $OpenBSD: machdep.c,v 1.143 2004/06/23 00:30:36 miod Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -1810,10 +1810,12 @@ m197_ext_int(u_int v, struct trapframe *eframe)
flush_pipeline();
}
- /* block interrupts at level or lower */
- setipl(level);
+ if (v != T_NON_MASK || cold == 0) {
+ /* block interrupts at level or lower */
+ setipl(level);
- enable_interrupt();
+ enable_interrupt();
+ }
if ((intr = intr_handlers[vec]) == NULL) {
/* increment intr counter */
@@ -1853,13 +1855,15 @@ m197_ext_int(u_int v, struct trapframe *eframe)
}
}
- disable_interrupt();
+ if (v != T_NON_MASK || cold == 0) {
+ disable_interrupt();
- /*
- * Restore the mask level to what it was when the interrupt
- * was taken.
- */
- setipl(mask);
+ /*
+ * Restore the mask level to what it was when the interrupt
+ * was taken.
+ */
+ setipl(mask);
+ }
}
#endif /* MVME197 */