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
CMakeLists.txt cmake: enable -Wshadow partially for in-tree code 2023-08-22 11:39:58 +02: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
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
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
events.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
fatal.c
futex.c
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
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
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
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
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