a7a8a64e9c
The incorrect sequence will cause the thread cannot be aborted in the ISR context. The following test case failed: tests/kernel/fatal/exception/kernel.common.stack_sentinel. The stack sentinel detects the stack overflow as normal during a timer ISR exit. Note that, currently, the stack overflow detection is behind the context switch checking, and then the detection will call svc to raise a fatal error resulting in increasing the nested counter(+1). At this point, it needs a context switch to finally abort the thread. However, after the fatal error handling, the program cannot do a context switch either during the svc exit[1], or during the timer ISR exit[2]. [1] is because the svc context is in an interrupt nested state (the nested counter is 2). [2] is because the current point (after svc context pop out) is right behind the switch checking. Signed-off-by: Jaxson Han <jaxson.han@arm.com> |
||
---|---|---|
.. | ||
core | ||
include | ||
CMakeLists.txt | ||
Kconfig |