Implement deferred IRQ locking. Adds partial support for Xtensa. More is needed.

This commit is contained in:
Gregory Nutt 2016-12-23 11:39:44 -06:00
parent 9f7ba21f8a
commit cb1cc66d81

View File

@ -52,6 +52,7 @@
#include "group/group.h"
#include "sched/sched.h"
#include "irq/irq.h"
/****************************************************************************
* Public Functions
@ -129,6 +130,17 @@ uint32_t *xtensa_irq_dispatch(int irq, uint32_t *regs)
(void)group_addrenv(NULL);
#endif
#ifdef CONFIG_SMP
/* In the SMP configuration, critical section management uses a
* "voting" algorithm with current task on each CPU casting its
* "vote" by the state of the TCB irqcount flag. That irqcount
* for the current task on this CPU will be different is a
* context switch occurrred.
*/
irq_restore_lock();
#endif
}
#endif