zephyr/kernel
Paul Sokolovsky 199d07e655 kernel: queue: k_queue_poll: Fix slist access race condition
All sys_slist_*() functions aren't threadsafe and calls to them
must be protected with irq_lock. This is usually done in a wider
caller context, but k_queue_poll() is called with irq_lock already
relinquished, and is thus subject to hard to detect and explain
race conditions, as e.g. was tracked in #4022.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2017-10-17 10:37:47 +02:00
..
include userspace handlers: finer control of init state 2017-10-16 19:02:00 -07:00
alert.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
atomic_c.c
compiler_stack_protect.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
device.c gen_kobject_list.py: device driver support 2017-09-29 13:25:58 -07:00
errno.c
idle.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
init.c userspace: allow thread IDs to be re-used 2017-10-16 16:16:28 -07:00
int_latency_bench.c
Kconfig kernel: add memory domain APIs 2017-09-29 16:48:53 -07:00
Kconfig.event_logger
Kconfig.power_mgmt
mailbox.c kernel: Use SYS_DLIST_FOR_EACH_CONTAINER whenever possible 2017-08-25 09:08:50 -04:00
Makefile kernel: add syscalls for k_object_access APIs 2017-10-05 12:53:41 -04:00
mem_domain.c mem_domain: fix warning when assertions enabled 2017-10-03 14:46:19 -04:00
mem_slab.c kernel: introduce object validation mechanism 2017-09-07 16:33:33 -07:00
mempool.c mem_pool: Don't check level_empty() before breaking a block 2017-07-31 09:14:59 -07:00
msg_q.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
mutex.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
pipes.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
poll.c poll: Enable multiple threads to use k_poll in the same object 2017-08-25 09:00:46 -04:00
pthread.c kernel: POSIX thread IPC support 2017-08-15 19:42:07 -04:00
queue.c kernel: queue: k_queue_poll: Fix slist access race condition 2017-10-17 10:37:47 +02:00
sched.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
sem.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
stack.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
sys_clock.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
system_work_q.c
thread_abort.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
thread.c kernel: implement k_thread_create() as a syscall 2017-10-16 19:02:00 -07:00
timer.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
userspace_handler.c userspace handlers: finer control of init state 2017-10-16 19:02:00 -07:00
userspace.c userspace: treat thread stacks as kernel objects 2017-10-16 19:02:00 -07:00
version.c kernel: version: no need to store version in RAM 2017-09-07 16:34:50 -07:00
work_q.c kernel: introduce object validation mechanism 2017-09-07 16:33:33 -07:00