zephyr/kernel
Andy Ross 8153144de0 kernel/fatal: Fatal errors must not be preempted
The code underneath z_fatal_error() (which is usually run in an
exception context, but is not required to be) was running with
interrupts enabled, which is a little surprising.

The only bug present currently is that the CPU ID extracted for
logging is subject to a race (i.e. it's possible but very unlikely
that such a handler might migrate to another CPU after the error is
flagged and log the wrong CPU ID), but in general users with custom
error handlers are likely to be surprised when their dying threads
gets preempted by other code before they can abort.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-02-08 08:51:04 -05:00
..
include kernel/smp: arch/x86_64: Address race with CPU migration 2020-02-08 08:51:04 -05:00
atomic_c.c kernel: fix the bug in atomic_c.c 2019-09-26 21:13:20 -04:00
CMakeLists.txt cmake: Add target for generating header files 2020-01-29 11:44:57 -06:00
compiler_stack_protect.c kernel: Fix gcc-9.2 warning with _StackCheckHandler 2019-10-04 05:22:30 -07:00
device.c kernel: device: Add const qualifier to device_config 2020-01-22 06:32:36 -06:00
errno.c headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
fatal.c kernel/fatal: Fatal errors must not be preempted 2020-02-08 08:51:04 -05:00
futex.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
idle.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
init.c kernel/smp: arch/x86_64: Address race with CPU migration 2020-02-08 08:51:04 -05:00
Kconfig kernel: kconfig: Make SCHED_IPI_SUPPORTED invisible 2020-01-20 18:38:10 -05:00
Kconfig.power_mgmt kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
mailbox.c global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
mem_domain.c kernel: fix k_mem_partition data types 2019-12-12 14:48:42 -08:00
mem_slab.c kernel: mem_slab: error handling 2020-01-20 17:19:54 -05:00
mempool.c mempool: use k_malloc heap for ISR allocations 2020-01-24 09:27:59 -08:00
msg_q.c kernel: msgq: error handling 2020-01-20 17:19:54 -05:00
mutex.c tracing: move headers under include/tracing 2020-02-07 15:58:05 -05:00
pipes.c kernel: pipe: runtime error checking 2020-01-20 17:19:54 -05:00
poll.c kernel: poll: Allow 0 event input 2020-01-03 11:26:46 -08:00
queue.c kernel/queue: Fix SMP race 2020-01-21 14:47:52 -08:00
sched.c kernel/smp: arch/x86_64: Address race with CPU migration 2020-02-08 08:51:04 -05:00
sem.c tracing: move headers under include/tracing 2020-02-07 15:58:05 -05:00
smp.c kernel/smp: arch/x86_64: Address race with CPU migration 2020-02-08 08:51:04 -05:00
stack.c kernel: stack: error handling 2020-01-20 17:19:54 -05:00
system_work_q.c kernel: system_work_q: Set dedicated "sysworkq" name. 2018-10-19 07:58:45 -04:00
thread_abort.c kernel/sched: Move thread suspend and abort under the scheduler lock 2020-01-08 14:21:10 +01:00
thread.c kernel: overhaul unused stack measurement 2020-02-08 10:02:35 +02:00
timeout.c kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
timer.c kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
userspace_handler.c kernel: remove vestigal printk references 2019-10-01 16:15:06 -05:00
userspace.c kernel: use 'thread' for thread variable consistently 2019-12-21 19:57:57 -05:00
version.c doc: add kernel version API to doxygen 2018-12-08 17:24:53 -05:00
work_q.c kernel: work_q: error handling 2020-01-20 17:19:54 -05:00