diff options
author | fsmp <fsmp@FreeBSD.org> | 1997-09-28 19:34:48 +0000 |
---|---|---|
committer | fsmp <fsmp@FreeBSD.org> | 1997-09-28 19:34:48 +0000 |
commit | c462c9c658567cdce1c85ac38bdd669c006d559e (patch) | |
tree | 2507b1ad0b47c909a0225e41a9a1d45d4f58e7b8 /sys/i386/isa/ipl.s | |
parent | 91399998c0a7aadd6f379874264c78d2fca18e4a (diff) | |
download | FreeBSD-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.s | 19 |
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 */ |