mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-25 14:25:44 +00:00
fix(el3-runtime): for nested serrors, restore x30 to lower EL address
In FFH mode, When handling nested serrors, serror is handled once and all subsequent serrors are considered handled.And EL3 directly return to lower EL. While returning to lower EL, x30 is restore to CTX_SAVED_GPREG_LR address.CTX_SAVED_GPREG_LR address belongs to EL3 address range and this address will not be accessible in lower EL. After return to lower EL, when lower EL access x30, segmentation fault happens and Kernel kills application. This patch restore x30 to lower EL address (CTX_GPREG_LR) to avoid segmentation fault at lower EL. Change-Id: Ie8becb206e0c0204e01d12ab63ae6e915dcf33e4 Signed-off-by: Jaiprakash Singh <jaiprakashs@marvell.com>
This commit is contained in:
parent
0c370e2d59
commit
0bc3115f6e
1 changed files with 2 additions and 0 deletions
|
@ -158,6 +158,8 @@ func handle_pending_async_ea
|
||||||
b.eq 1f
|
b.eq 1f
|
||||||
ret
|
ret
|
||||||
1:
|
1:
|
||||||
|
ldr x30, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_LR]
|
||||||
|
str xzr, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_LR]
|
||||||
exception_return
|
exception_return
|
||||||
endfunc handle_pending_async_ea
|
endfunc handle_pending_async_ea
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue