diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-01-11 23:09:53 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-01-11 23:09:53 +0000 |
commit | 742483b5b30c83c282aad13ba916a4128adfdb95 (patch) | |
tree | f0ff181e8de961458205ce6977682b3b865b75e9 /sys | |
parent | de14e65cede78592184825987416d574db704517 (diff) |
Increase/decrease the per-CPU interrupt depth variable around APIC interrupts
like we do for PIC interrupts.
ok art@, deraadt@, oga@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/i386/i386/apicvec.s | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/i386/i386/apicvec.s b/sys/arch/i386/i386/apicvec.s index f82b97e8888..8be396dbad4 100644 --- a/sys/arch/i386/i386/apicvec.s +++ b/sys/arch/i386/i386/apicvec.s @@ -1,4 +1,4 @@ -/* $OpenBSD: apicvec.s,v 1.20 2009/08/10 16:40:50 oga Exp $ */ +/* $OpenBSD: apicvec.s,v 1.21 2010/01/11 23:09:52 kettenis Exp $ */ /* $NetBSD: apicvec.s,v 1.1.2.2 2000/02/21 21:54:01 sommerfeld Exp $ */ /*- @@ -299,6 +299,7 @@ _C_LABEL(Xintr_##name##num): \ jz _C_LABEL(Xstray_##name##num) ;\ APIC_STRAY_INIT /* nobody claimed it yet */ ;\ 7: \ + incl CPUVAR(IDEPTH) ;\ LOCK_KERNEL(IF_PPL(%esp)) ;\ movl IH_ARG(%ebx),%eax /* get handler arg */ ;\ testl %eax,%eax ;\ @@ -315,6 +316,7 @@ _C_LABEL(Xintr_##name##num): \ adcl $0,IH_COUNT+4(%ebx) ;\ 4: \ UNLOCK_KERNEL(IF_PPL(%esp)) ;\ + decl CPUVAR(IDEPTH) ;\ movl IH_NEXT(%ebx),%ebx /* next handler in chain */ ;\ testl %ebx,%ebx ;\ jnz 7b ;\ |