diff options
author | bde <bde@FreeBSD.org> | 1996-12-29 22:05:23 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1996-12-29 22:05:23 +0000 |
commit | bb1f97cdf1ce63ed017036e831fbb78377c06c03 (patch) | |
tree | d35b23cdda03f0a9d001a581d9c85c9bb914f876 /sys | |
parent | 61d66dc5401e2febc66f9ab28bb96ef22359afbb (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/i386/isa/icu.s | 4 |
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 |