diff options
Diffstat (limited to 'x86_64/interrupt.S')
-rw-r--r-- | x86_64/interrupt.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/x86_64/interrupt.S b/x86_64/interrupt.S index 74a25c49..fcd5a032 100644 --- a/x86_64/interrupt.S +++ b/x86_64/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 subq $16,%rsp /* Two local variables */ movl %eax,S_IRQ /* save irq number */ @@ -125,6 +127,7 @@ _no_eoi: addq $16,%rsp /* 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 */ @@ -135,4 +138,5 @@ _call_local_ast: call EXT(ast_check) /* AST check on this cpu */ call EXT(lapic_eoi) /* lapic EOI */ ret +#endif END(interrupt) |