diff options
author | fsmp <fsmp@FreeBSD.org> | 1997-08-20 05:25:48 +0000 |
---|---|---|
committer | fsmp <fsmp@FreeBSD.org> | 1997-08-20 05:25:48 +0000 |
commit | 2c414e3eff799c18e5d3e8edfe37d7dc71f35c7a (patch) | |
tree | 4060f694285dcb8b0a5d572747820da61322b0df /sys/i386/isa/ipl.s | |
parent | ea72b8e976791b005527662091bc146ad0bfd3b6 (diff) | |
download | FreeBSD-src-2c414e3eff799c18e5d3e8edfe37d7dc71f35c7a.zip FreeBSD-src-2c414e3eff799c18e5d3e8edfe37d7dc71f35c7a.tar.gz |
Preperation for moving cpl into critical region access.
Several new fine-grained locks.
New FAST_INTR() methods:
- separate simplelock for FAST_INTR, no more giant lock.
- FAST_INTR()s no longer checks ipending on way out of ISR.
sio made MP-safe (I hope).
Diffstat (limited to 'sys/i386/isa/ipl.s')
-rw-r--r-- | sys/i386/isa/ipl.s | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/i386/isa/ipl.s b/sys/i386/isa/ipl.s index 002e924..3b2bf73 100644 --- a/sys/i386/isa/ipl.s +++ b/sys/i386/isa/ipl.s @@ -36,7 +36,7 @@ * * @(#)ipl.s * - * $Id: ipl.s,v 1.7 1997/08/10 20:58:58 fsmp Exp $ + * $Id: ipl.s,v 1.8 1997/08/10 21:17:55 fsmp Exp $ */ @@ -182,8 +182,7 @@ doreti_unpend: */ sti bsfl %ecx,%ecx /* slow, but not worth optimizing */ - MP_INSTR_LOCK - btrl %ecx,_ipending + MPLOCKED btrl %ecx, _ipending jnc doreti_next /* some intr cleared memory copy */ movl ihandlers(,%ecx,4),%edx testl %edx,%edx @@ -244,8 +243,7 @@ swi_ast_phantom: * using by using cli, but they are unavoidable for lcall entries. */ cli - MP_INSTR_LOCK - orl $SWI_AST_PENDING,_ipending + MPLOCKED orl $SWI_AST_PENDING, _ipending subl %eax,%eax jmp doreti_exit /* SWI_AST is highest so we must be done */ @@ -283,8 +281,7 @@ splz_next: ALIGN_TEXT splz_unpend: bsfl %ecx,%ecx - MP_INSTR_LOCK - btrl %ecx,_ipending + MPLOCKED btrl %ecx, _ipending jnc splz_next movl ihandlers(,%ecx,4),%edx testl %edx,%edx |