zephyr/kernel
Andrew Boie e09a04f068 arm: fix exception handling
For exceptions where we are just going to abort the current thread, we
need to exit handler mode properly so that PendSV can run and perform a
context switch. For ARM architecture this means that the fatal error
handling code path can indeed return if we were 1) in handler mode and
2) only wish to abort the current thread.

Fixes a very long-standing bug where a thread that generates an
exception, and should only abort the thread, instead takes down the
entire system.

Issue: ZEP-2052
Change-Id: Ib356a34a6fda2e0f8aff39c4b3270efceb81e54d
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-04-22 01:08:07 +00:00
..
configs kernel: add LEGACY_KERNEL option 2017-01-09 19:42:13 +00:00
include kernel: refactor thread_monitor_init into common code 2017-04-21 20:34:42 +00:00
alert.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
atomic_c.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
compiler_stack_protect.c arm: fix exception handling 2017-04-22 01:08:07 +00:00
device.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
errno.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
idle.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
init.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
int_latency_bench.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
Kconfig spell: Kconfig help typos: /kernel /misc /subsys 2017-04-22 01:04:56 +00:00
Kconfig.event_logger license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Kconfig.power_mgmt kernel: Remove redundant TICKLESS_IDLE_SUPPORTED option 2017-02-08 13:02:34 +00:00
mailbox.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
Makefile kernel: remove legacy kernel support 2017-04-19 15:48:37 +00:00
mem_pool.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
mem_slab.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
msg_q.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
mutex.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
pipes.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
poll.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
queue.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
sched.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
sem.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
stack.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
sys_clock.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
system_work_q.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
thread.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
thread_abort.c kernel: remove legacy kernel support 2017-04-19 15:48:37 +00:00
timer.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
version.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
work_q.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00