diff options
Diffstat (limited to 'bsps/i386/pc386/start')
-rw-r--r-- | bsps/i386/pc386/start/smp-imps.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bsps/i386/pc386/start/smp-imps.c b/bsps/i386/pc386/start/smp-imps.c index de593f3c40..0985b8f08f 100644 --- a/bsps/i386/pc386/start/smp-imps.c +++ b/bsps/i386/pc386/start/smp-imps.c @@ -768,7 +768,17 @@ static void bsp_inter_processor_interrupt(void *arg) smp_apic_ack(); + /* + * Disallow nesting. + */ + __asm__ __volatile__("cli"); + _SMP_Inter_processor_interrupt_handler(_Per_CPU_Get()); + + /* + * Allow nesting. + */ + __asm__ __volatile__("sti"); } void |