mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 01:05:54 +08:00
2395ab7f6e
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>