diff options
Diffstat (limited to 'i386/i386at/interrupt.S')
-rw-r--r-- | i386/i386at/interrupt.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S index 18680090..8ae6b97c 100644 --- a/i386/i386at/interrupt.S +++ b/i386/i386at/interrupt.S @@ -45,11 +45,13 @@ ENTRY(interrupt) ret /* if so, just return */ 1: #endif +#if NCPUS > 1 cmpl $CALL_PMAP_UPDATE,%eax /* was this a SMP pmap_update request? */ je _call_single cmpl $CALL_AST_CHECK,%eax /* was this a SMP remote -> local ast request? */ je _call_local_ast +#endif subl $24,%esp /* Two local variables + 4 parameters */ movl %eax,S_IRQ /* save irq number */ @@ -127,6 +129,7 @@ _no_eoi: addl $24,%esp /* pop local variables */ ret +#if NCPUS > 1 _call_single: cli /* no nested interrupts */ call EXT(lapic_eoi) /* lapic EOI before the handler to allow extra update */ @@ -137,4 +140,5 @@ _call_local_ast: call EXT(ast_check) /* AST check on this cpu */ call EXT(lapic_eoi) /* lapic EOI */ ret +#endif END(interrupt) |