diff options
author | 2006-11-15 14:40:50 +0000 | |
---|---|---|
committer | 2006-11-15 14:40:50 +0000 | |
commit | 91a1024da82c7aba434580a6bf5aa9261eda816c (patch) | |
tree | 5b6f990f51965fa0069870b1e7e0d1e54626ef06 /sys | |
parent | Fix the loop in malo_tx_intr(). This fixes a infinit loop that happend after (diff) | |
download | wireguard-openbsd-91a1024da82c7aba434580a6bf5aa9261eda816c.tar.xz wireguard-openbsd-91a1024da82c7aba434580a6bf5aa9261eda816c.zip |
do not go processing normal interrupts after ipi.
this is to avoid spins at high spl especialy on cpu0.
other local interrupts (timer and softint) still do
also pending interrupts processing. niklas@ ok
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/i386/i386/apicvec.s | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/i386/i386/apicvec.s b/sys/arch/i386/i386/apicvec.s index 48a3f8e4f5a..aa6ee91a1fb 100644 --- a/sys/arch/i386/i386/apicvec.s +++ b/sys/arch/i386/i386/apicvec.s @@ -1,4 +1,4 @@ -/* $OpenBSD: apicvec.s,v 1.7 2006/06/12 04:41:30 gwk Exp $ */ +/* $OpenBSD: apicvec.s,v 1.8 2006/11/15 14:40:50 mickey Exp $ */ /* $NetBSD: apicvec.s,v 1.1.2.2 2000/02/21 21:54:01 sommerfeld Exp $ */ /*- @@ -63,7 +63,9 @@ XINTR(ipi): ioapic_asm_ack() sti /* safe to take interrupts.. */ call _C_LABEL(i386_ipi_handler) - jmp _C_LABEL(Xdoreti) + cli + popl CPL + INTRFASTEXIT #endif /* |