summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/ipl.s
diff options
context:
space:
mode:
authorfsmp <fsmp@FreeBSD.org>1997-09-28 19:34:48 +0000
committerfsmp <fsmp@FreeBSD.org>1997-09-28 19:34:48 +0000
commitc462c9c658567cdce1c85ac38bdd669c006d559e (patch)
tree2507b1ad0b47c909a0225e41a9a1d45d4f58e7b8 /sys/i386/isa/ipl.s
parent91399998c0a7aadd6f379874264c78d2fca18e4a (diff)
downloadFreeBSD-src-c462c9c658567cdce1c85ac38bdd669c006d559e.zip
FreeBSD-src-c462c9c658567cdce1c85ac38bdd669c006d559e.tar.gz
Added a couple short-term debugs and a fix to the SPIN_MAX variable.
Debugs are an attempt to ferret out the PUSHDOWN_LEVEL_3 deadlock.
Diffstat (limited to 'sys/i386/isa/ipl.s')
-rw-r--r--sys/i386/isa/ipl.s19
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/i386/isa/ipl.s b/sys/i386/isa/ipl.s
index e87df92..bff5651 100644
--- a/sys/i386/isa/ipl.s
+++ b/sys/i386/isa/ipl.s
@@ -36,7 +36,7 @@
*
* @(#)ipl.s
*
- * $Id: ipl.s,v 1.13 1997/09/07 22:02:56 fsmp Exp $
+ * $Id: ipl.s,v 1.14 1997/09/21 21:41:16 gibbs Exp $
*/
@@ -227,8 +227,15 @@ no_cil:
*/
movl ihandlers(,%ecx,4),%edx
testl %edx,%edx
+#if 0
/* XXX SMP this would leave cil set: */
je doreti_next /* "can't happen" */
+#else
+ jne ih_ok
+ int $3 /* _breakpoint */
+ jmp doreti_next /* "can't happen" */
+ih_ok:
+#endif
cmpl $NHWI,%ecx
jae doreti_swi
cli
@@ -249,6 +256,14 @@ no_cil:
ALIGN_TEXT
doreti_swi:
+#if 1
+ cmpl $0100, _cil
+ jne 1f
+ cmpl $0, _inside_intr
+ jne 1f
+ int $3
+1:
+#endif
pushl %eax
/*
* The SWI_AST handler has to run at cpl = SWI_AST_MASK and the
@@ -262,7 +277,7 @@ doreti_swi:
#ifdef SMP
orl imasks(,%ecx,4), %eax
cli /* prevent INT deadlock */
- pushl %eax /* save cpl|cmpl */
+ pushl %eax /* save cpl|cml */
ICPL_LOCK
#ifdef CPL_AND_CML
popl _cml /* restore cml */
OpenPOWER on IntegriCloud