zephyr/kernel
Andy Ross 4c2fc2aed7 kernel/queue: Fix SMP race
Calling z_ready_thread() means the thread is now ready and can wake up
at any moment on another CPU.  But we weren't finished setting the
return value!  So the other side could wake up with a spurious "error"
condition if it ran too soon.  Note that on systems with a working
IPI, that wakeup can happen much faster than you might think.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-01-21 14:47:52 -08:00
..
include kernel/swap: Add SMP "wait for switch" synchronization 2020-01-21 14:47:52 -08:00
atomic_c.c
CMakeLists.txt headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
compiler_stack_protect.c kernel: Fix gcc-9.2 warning with _StackCheckHandler 2019-10-04 05:22:30 -07:00
device.c kernel: move test of kernel startup state to more visible location 2020-01-06 13:55:31 -05:00
errno.c headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
fatal.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
futex.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
idle.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
init.c tracing: remove duplicate tracing of thread creation 2020-01-09 11:21:19 -05:00
Kconfig kernel: kconfig: Make SCHED_IPI_SUPPORTED invisible 2020-01-20 18:38:10 -05:00
Kconfig.power_mgmt kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
mailbox.c global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
mem_domain.c kernel: fix k_mem_partition data types 2019-12-12 14:48:42 -08:00
mem_slab.c kernel: mem_slab: error handling 2020-01-20 17:19:54 -05:00
mempool.c kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
msg_q.c kernel: msgq: error handling 2020-01-20 17:19:54 -05:00
mutex.c kernel: mutex: add error checking 2020-01-20 17:19:54 -05:00
pipes.c kernel: pipe: runtime error checking 2020-01-20 17:19:54 -05:00
poll.c kernel: poll: Allow 0 event input 2020-01-03 11:26:46 -08:00
queue.c kernel/queue: Fix SMP race 2020-01-21 14:47:52 -08:00
sched.c kernel/swap: Add SMP "wait for switch" synchronization 2020-01-21 14:47:52 -08:00
sem.c kernel: semaphore: optimize code 2020-01-20 17:19:54 -05:00
smp.c kernel: cleanup and formally define CPU start fn 2020-01-13 16:35:10 -05:00
stack.c kernel: stack: error handling 2020-01-20 17:19:54 -05:00
system_work_q.c
thread_abort.c kernel/sched: Move thread suspend and abort under the scheduler lock 2020-01-08 14:21:10 +01:00
thread.c kernel/swap: Add SMP "wait for switch" synchronization 2020-01-21 14:47:52 -08:00
timeout.c kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
timer.c kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
userspace_handler.c kernel: remove vestigal printk references 2019-10-01 16:15:06 -05:00
userspace.c kernel: use 'thread' for thread variable consistently 2019-12-21 19:57:57 -05:00
version.c
work_q.c kernel: work_q: error handling 2020-01-20 17:19:54 -05:00