nuttx/arch
Ville Juven 65cfd8a6ca riscv_syscall.S: Fix a massive bug in syscall dispatch logic
There is an enormous error in the system call dispatch logic; if a task
is inside a critical section (local interrupts disabled) there is a chance
that during a context switch when the task resumes, local interrupts are
erroneously ENABLED. This obviously leads to unexpected crashes and such.

This happens when the CPU status has Previous Interrupt Enable (PIE) set
to 1, even though Interrupt Enable (IE) is set to 0.

When the system call returns via ERET, the CPU sets PIE->IE and if PIE=1
interrupts get enabled.

This is fixed easily by explicitly CLEARING PIE from the register save
area, if IE=0 when the system call was started.
2024-11-08 12:51:39 -03:00
..
arm Fix Serial APB Clock Sources 2024-11-07 11:37:28 +08:00
arm64 arch/arm64: Optimized SGI to avoid VM exit. 2024-11-08 01:23:46 +08:00
avr driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
ceva irq: force inline up_interrupt_context 2024-10-31 15:43:41 +08:00
dummy
hc driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
mips driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
misoc driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
or1k irq: force inline up_interrupt_context 2024-10-31 15:43:41 +08:00
renesas arch: Fix minor style issue 2024-10-28 09:24:55 +01:00
risc-v riscv_syscall.S: Fix a massive bug in syscall dispatch logic 2024-11-08 12:51:39 -03:00
sim nuttx/sim: Remove math.h in sim. 2024-11-06 02:56:24 +08:00
sparc irq: force inline up_interrupt_context 2024-10-31 15:43:41 +08:00
tricore gcov: Fix typographical errors 2024-10-30 14:45:23 +08:00
x86 driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
x86_64 x86_64: fix compile warning 2024-11-04 18:06:09 +08:00
xtensa esp32[s2|s3]: Add SPI bitbang support 2024-11-06 19:47:42 +08:00
z16 driver/serial: remove return value of up_putc() 2024-10-26 13:21:29 +08:00
z80 arch: Fix minor style issue 2024-10-28 09:24:55 +01:00
CMakeLists.txt greenhills: fix the arch_interface archive error 2024-09-27 23:39:56 +08:00
Kconfig arch/arm64: add have fork config 2024-11-07 15:21:10 +08:00