riscv: Do not remove ESF when SOC_ISR_SW_UNSTACKING
When CONFIG_SOC_ISR_SW_UNSTACKING is defined, it's up to the custom soc code to remove the ESF, because the software-managed part of the ESF is depending on the hardware. Fix this in the ISR code. Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
parent
9bc3de8c11
commit
61a204c831
1 changed files with 2 additions and 1 deletions
|
@ -659,7 +659,6 @@ fp_trap_exit:
|
||||||
#else
|
#else
|
||||||
/* Restore caller-saved registers from thread stack */
|
/* Restore caller-saved registers from thread stack */
|
||||||
DO_CALLER_SAVED(lr)
|
DO_CALLER_SAVED(lr)
|
||||||
#endif /* CONFIG_RISCV_SOC_HAS_ISR_STACKING */
|
|
||||||
|
|
||||||
#ifdef CONFIG_USERSPACE
|
#ifdef CONFIG_USERSPACE
|
||||||
/* retrieve saved stack pointer */
|
/* retrieve saved stack pointer */
|
||||||
|
@ -669,4 +668,6 @@ fp_trap_exit:
|
||||||
addi sp, sp, __z_arch_esf_t_SIZEOF
|
addi sp, sp, __z_arch_esf_t_SIZEOF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif /* CONFIG_RISCV_SOC_HAS_ISR_STACKING */
|
||||||
|
|
||||||
mret
|
mret
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue