There was a bug where double-dispatch of a single thread on multiple SMP CPUs was possible. This can be mind-bending to diagnose, so when CONFIG_ASSERT is enabled add an extra instruction to __resume (the shared code path for both interupt return and context switch) that poisons the shared RIP of the now-running thread with a recognizable invalid value. Now attempts to run the thread again will crash instantly with a discoverable cookie in their instruction pointer, and this will remain true until it gets a new RIP at the next interrupt or switch. This is under CONFIG_ASSERT because it meets the same design goals of "a cheap test for impossible situations", not because it's part of the assertion framework. Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
|---|---|---|
| .. | ||
| arc | ||
| arm | ||
| common | ||
| nios2 | ||
| posix | ||
| riscv | ||
| x86 | ||
| xtensa | ||
| CMakeLists.txt | ||
| Kconfig | ||