mirror of
https://github.com/apache/nuttx.git
synced 2026-10-02 03:46:25 +00:00
up_switch_context() and up_exit() released the critical section and then kept using the outgoing task's stack: a call/ret through nxsched_switch_context() and the call into x86_64_fullcontextrestore(). Once the lock is released the outgoing task can be woken and run by another CPU on that same stack, so those accesses race with it. Release the critical section as the last step and enter x86_64_fullcontextrestore() with a jmp so nothing is read from or written to the outgoing stack after the release. Assisted-by: Claude Code Signed-off-by: raiden00pl <raiden00@railab.me> |
||
|---|---|---|
| .. | ||
| include | ||
| src | ||
| CMakeLists.txt | ||
| Kconfig | ||