Implement deferred IRQ locking. Adds partial support for Xtensa. More is needed.
This commit is contained in:
parent
9f7ba21f8a
commit
cb1cc66d81
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user