summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/ipl.s
diff options
context:
space:
mode:
authorfsmp <fsmp@FreeBSD.org>1997-08-20 05:25:48 +0000
committerfsmp <fsmp@FreeBSD.org>1997-08-20 05:25:48 +0000
commit2c414e3eff799c18e5d3e8edfe37d7dc71f35c7a (patch)
tree4060f694285dcb8b0a5d572747820da61322b0df /sys/i386/isa/ipl.s
parentea72b8e976791b005527662091bc146ad0bfd3b6 (diff)
downloadFreeBSD-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.s11
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
OpenPOWER on IntegriCloud