mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-07 19:04:40 +00:00
Fix the issue where the kernel poll code would place the tracking struct on the caller stack and share it with other threads, thus creating a cache coherence issue on systems where KERNEL_COHERENCE is enabled. This works by eliminating the thread backpointer in struct _poller and simply placing the (now just two-byte!) struct directly into the thread struct. Note that this doesn't attempt to fix the API paradigm that the natural way to structure a call to k_poll() is to use an array of k_poll_events on the CALLER's stack. So it's likely that most "typical" k_poll code is still going to have problems with KERNEL_COHERENCE. But at least now the kernel internals aren't fundamentally broken. Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
---|---|---|
.. | ||
app_memory | ||
arch | ||
audio | ||
bluetooth | ||
canbus | ||
cmsis_rtos_v1 | ||
cmsis_rtos_v2 | ||
console | ||
crypto | ||
data | ||
debug | ||
devicetree | ||
dfu | ||
disk | ||
display | ||
drivers | ||
dt-bindings | ||
fs | ||
linker | ||
logging | ||
lorawan | ||
mgmt | ||
net | ||
posix | ||
power | ||
random | ||
settings | ||
shell | ||
stats | ||
storage | ||
sys | ||
timing | ||
toolchain | ||
tracing | ||
usb | ||
zephyr | ||
cache.h | ||
device.h | ||
devicetree.h | ||
ec_host_cmd.h | ||
emul.h | ||
exc_handle.h | ||
fatal.h | ||
generated_dts_board.h | ||
init.h | ||
irq_nextlevel.h | ||
irq_offload.h | ||
irq.h | ||
kernel_includes.h | ||
kernel_structs.h | ||
kernel_version.h | ||
kernel.h | ||
mempool_heap.h | ||
mempool_sys.h | ||
ptp_clock.h | ||
sched_priq.h | ||
shared_irq.h | ||
spinlock.h | ||
sw_isr_table.h | ||
sys_clock.h | ||
syscall_handler.h | ||
syscall.h | ||
timeout_q.h | ||
toolchain.h | ||
wait_q.h | ||
zephyr.h |