zephyr/kernel
Andy Ross 1202810119 kernel/sched: _thread_priority_set needs to be sched_lock aware
This API doesn't use the normal thread priority comparison itself, so
doesn't get the magic that thread_base.prio provides.  If called when
another thread should be run, this would preempt the current thread
always, even if the scheduler lock was taken.

That was benign until recent spinlockifiation exposed it: a mutex in
the philosophers test run in preempt_only mode would swap away while
holding a spinlock (which used to work with irq locks) and fail later
with a "recursive" spinlock assert.

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
mailbox.c kernel/mbox: Spinlockify 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/msg_q: Spinlockify 2019-02-08 14:49:39 -05:00
mutex.c kernel/mutex: Spinlockify 2019-02-08 14:49:39 -05:00
pipes.c kernel/pipe: Spinlockify 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/sched: _thread_priority_set needs to be sched_lock aware 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/stack: Spinlockify 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/timer: Spinlockify 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 kernel/userspace: Spinlockification 2019-02-08 14:49:39 -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