summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1996-12-29 22:05:23 +0000
committerbde <bde@FreeBSD.org>1996-12-29 22:05:23 +0000
commitbb1f97cdf1ce63ed017036e831fbb78377c06c03 (patch)
treed35b23cdda03f0a9d001a581d9c85c9bb914f876 /sys/i386
parent61d66dc5401e2febc66f9ab28bb96ef22359afbb (diff)
downloadFreeBSD-src-bb1f97cdf1ce63ed017036e831fbb78377c06c03.zip
FreeBSD-src-bb1f97cdf1ce63ed017036e831fbb78377c06c03.tar.gz
Fixed keeping track of interrupt nesting level across ASTs. It sometimes
became -1, and this recently became fatal if an address error occurs in copyin/out/etc.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/isa/icu.s4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/i386/isa/icu.s b/sys/i386/isa/icu.s
index 567daf1..d0f165b 100644
--- a/sys/i386/isa/icu.s
+++ b/sys/i386/isa/icu.s
@@ -36,7 +36,7 @@
*
* @(#)icu.s 7.2 (Berkeley) 5/21/91
*
- * $Id: icu.s,v 1.25 1996/05/31 01:08:07 peter Exp $
+ * $Id: icu.s,v 1.26 1996/10/30 22:38:46 asami Exp $
*/
/*
@@ -181,8 +181,10 @@ swi_ast:
testb $SEL_RPL_MASK,TRAPF_CS_OFF(%esp)
je swi_ast_phantom
movl $T_ASTFLT,(2+8+0)*4(%esp)
+ movb $0,_intr_nesting_level /* finish becoming a trap handler */
call _trap
subl %eax,%eax /* recover cpl */
+ movb $1,_intr_nesting_level /* for doreti_next to decrement */
jmp doreti_next
ALIGN_TEXT
OpenPOWER on IntegriCloud