zephyr/arch/arm
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Benjamin Cabé 8b93109f26 arch: arm: cortex_m: pend PendSV with a plain store on thread abort
k_thread_abort() pends PendSV with SCB->ICSR |= PENDSVSET, the third
such site after arch_swap() and z_arm_exc_exit(). ICSR's writable bits
are write-one-to-set or write-one-to-clear and writing zero is a no-op,
so the read-modify-write is equivalent to a plain store while also
writing back a stale snapshot of the other write-one bits.

This path is not hot, so the motivation is consistency and dropping
that stale write-back rather than the saved access. The SHCSR update
immediately below stays a read-modify-write: its bits are ordinary
read/write ones that have to be preserved.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-09-26 00:44:46 +02:00
..
core arch: arm: cortex_m: pend PendSV with a plain store on thread abort 2026-09-26 00:44:46 +02:00
include arch: arm: cortex_m: pend PendSV with a plain ICSR store 2026-09-26 00:44:46 +02:00
CMakeLists.txt arch: arm: cmake: Correct endian in output format 2024-07-04 18:01:51 -04:00
Kconfig llext: Add support for generating veneers for out-of-range branches. 2026-05-14 15:13:09 +02:00