zephyr/kernel
Andy Ross 603ea42764 kernel/queue: Spinlockify
Straightforward port.  Each struct k_queue object gets a spinlock to
control obvious data ownership.

Note that this port actually discovered a preexisting bug: the -ENOMEM
case in queue_insert() was failing to release the lock.  But because
the tests that hit that path didn't rely on other threads being
scheduled, they ran to successful completion even with interrupts
disabled.  The spinlock API detects that as a recursive lock when
asserts are enabled.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-02-08 14:49:39 -05:00
..
include kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
atomic_c.c kernel/atomic_c: Spinlockify 2019-02-08 14:49:39 -05:00
CMakeLists.txt cmake: Use variables for target names 2019-01-19 07:21:55 -05:00
compiler_stack_protect.c
device.c kernel: check retval of driver init 2018-12-07 19:33:23 -05:00
errno.c
idle.c power: Eliminate SYS_PM_* power states. 2019-02-08 09:07:00 -05:00
init.c kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
int_latency_bench.c kernel: Make statements evaluate boolean expressions 2019-01-07 08:52:07 -05:00
Kconfig userspace: remove APPLICATION_MEMORY feature 2019-02-08 07:04:30 -05:00
Kconfig.power_mgmt kernel: ensure System Power Managment enables Tickless Idle. 2018-11-21 23:16:35 -05:00
mailbox.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
mem_domain.c kernel/mem_domain: Spinlockify 2019-02-08 14:49:39 -05:00
mem_slab.c kernel/mem_slab: Spinlockify 2019-02-08 14:49:39 -05:00
mempool.c kernel/mempool: Spinlockify 2019-02-08 14:49:39 -05:00
msg_q.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
mutex.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
pipes.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
poll.c kernel/poll: Spinlockify 2019-02-08 14:49:39 -05:00
queue.c kernel/queue: Spinlockify 2019-02-08 14:49:39 -05:00
sched.c kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
sem.c kernel/k_sem: Spinlockify 2019-02-08 14:49:39 -05:00
smp.c kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
stack.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
system_work_q.c
thread_abort.c kernel/thread_abort: Remove needless locking 2019-02-08 14:49:39 -05:00
thread.c kernel/thread: Spinlockify 2019-02-08 14:49:39 -05:00
timeout.c misc/dlist: Swap insertion API for a faster one 2019-02-01 15:57:21 -05:00
timer.c kernel: Split reschdule & pend into irq/spin lock versions 2019-02-08 14:49:39 -05:00
userspace_handler.c kernel: Make statements evaluate boolean expressions 2019-01-07 08:52:07 -05:00
userspace.c userspace: do not auto-cleanup static objects 2019-02-08 07:04:30 -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: Spinlockify 2019-02-08 14:49:39 -05:00