bsp/pc386: Disable interrupt nesting for job handler

- Fixes timeout for smpipi01 where:
    + Main thread sends perform jobs to worker cpu while it is already
    performing jobs
    + Interrupt on worker cpu performs jobs, but with empty job list
    + Worker cpu continues to execut previous job and adds new job list
    to itself, which is never performed, since the interrupt has already
    been handled
    + Main thread blocks forever on barrier D
This commit is contained in:
Jan Sommer
2020-05-31 16:22:59 +02:00
committed by Chris Johns
parent 6369dafbb6
commit 96d9823ddd

View File

@@ -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