zephyr/kernel
Ambroise Vincent 995eeda266 kernel: poll: Lock all calls to signal_poll_event
The signal_poll_event function was previously called without the poll
lock held. This created a race condition between a thread calling k_poll
to wait for an event and another thread signalling for this same event.
This resulted in the waiting thread to stay pending and the handle to it
getting removed from the notifyq, meaning it couldn't get woken up
again.

Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
2023-09-18 15:41:23 -04:00
..
include kernel: z_handle_obj_poll_events is internal not kernel.h material 2023-09-17 07:59:30 -04:00
paging arch/kernel/soc/samples: use unsigned int for irq_lock() 2022-07-14 14:37:13 -05:00
atomic_c.c kernel/atomic_c.c: prevent usage in SMP configs 2023-05-23 08:53:39 +02:00
banner.c kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
busy_wait.c kernel: crude k_busy_wait() implementation 2023-07-19 21:42:41 -04:00
CMakeLists.txt cmake: enable -Wshadow partially for in-tree code 2023-08-22 11:39:58 +02:00
compiler_stack_protect.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00
condvar.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
device.c device: make device dependencies optional 2023-06-21 09:32:05 +02:00
dynamic.c kernel: dynamic: add missing assert argument 2023-09-06 18:34:58 +02:00
dynamic_disabled.c kernel: dynamic: declare dynamic stubs when disabled 2023-07-24 12:59:43 -04:00
errno.c kernel: Allow Zephyr to use libc's internal errno 2022-05-12 19:06:48 -04:00
events.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
fatal.c debug: coredump: add xtensa intel adsp, support toolchains 2022-06-23 15:44:45 -04:00
futex.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
idle.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
init.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00
Kconfig COVERAGE: Fix COVERAGE_GCOV dependencies 2023-08-24 15:36:31 +02:00
Kconfig.vm kernel: mmu: add direct-map support in z_phys_map() 2023-05-26 13:50:35 -04:00
kheap.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
mailbox.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
main_weak.c kernel: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
mem_domain.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
mem_slab.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
mempool.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
mmu.c kernel: mmu: fix bitmap set and clear under direct map 2023-08-15 16:30:55 -04:00
msg_q.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
mutex.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
pipes.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
poll.c kernel: poll: Lock all calls to signal_poll_event 2023-09-18 15:41:23 -04:00
queue.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
sched.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
sem.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
smp.c kernel: rename shadow variables 2023-08-10 08:14:12 +00:00
stack.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
system_work_q.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
thread.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
timeout.c kernel: move timeout_q.h to kernel/include 2023-09-12 12:55:36 -04:00
timer.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
usage.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
userspace.c kernel: userspace: Fix memory leak 2023-07-20 16:10:32 +00:00
userspace_handler.c kernel: userspace: Add k_object_alloc_size 2023-07-17 16:56:01 -04:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
xip.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00