mirror of
https://github.com/apache/nuttx.git
synced 2026-08-26 11:50:50 +00:00
Summary: - I noticed that nxsched_merge_pending() is called outside a critical section - The issue happens if a new rtcb does not hold a critical section - Actually, global IRQ control is done in nxsched_resume_scheduler() in nxtask_exit() - However, nxsched_merge_pending() was called after calling nxsched_resume_scheduler() - This commit fixes the issue by moving nxsched_merge_pending() before the function - NOTE: the sequence was changed for SMP but works for non-SMP as well Impact: - This commit affects both SMP and non-SMP Testing: - Tested with ostest with the following configurations - spresense:wifi_smp (NCPUS=2 and 4) - spresense:wifi (non SMP) - sabre-6quad:smp (QEMU) - esp32-core:smp (QEMU) - maix-bit:smp (QEMU) - sim:smp - lc823450-xgevk:rndis Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> |
||
|---|---|---|
| .. | ||
| clock | ||
| environ | ||
| group | ||
| init | ||
| irq | ||
| module | ||
| mqueue | ||
| paging | ||
| pthread | ||
| sched | ||
| semaphore | ||
| signal | ||
| task | ||
| timer | ||
| wdog | ||
| wqueue | ||
| Kconfig | ||
| Makefile | ||