mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
fix(console): fix crash on spin_unlock with cache disabled
Current code skips load of spinlock address when cache is disabled. The following call to spin_unlock stores into the random location that x0 points to. Move spinlock address load earlier so that x0 is always valid on spin_unlock call. Change-Id: Iac640289725dce2518f2fed483d7d36ca748ffe8 Signed-off-by: Baruch Siach <baruch@tkos.co.il>
This commit is contained in:
parent
d3d2a5a484
commit
5fb6946ad7
1 changed files with 3 additions and 3 deletions
|
@ -68,12 +68,12 @@ func plat_crash_console_init
|
|||
mov x4, x30 /* x3 and x4 are not clobbered by spin_lock() */
|
||||
mov x3, #0 /* return value */
|
||||
|
||||
adrp x0, crash_console_spinlock
|
||||
add x0, x0, :lo12:crash_console_spinlock
|
||||
|
||||
mrs x1, sctlr_el3
|
||||
tst x1, #SCTLR_C_BIT
|
||||
beq skip_spinlock /* can't synchronize when cache disabled */
|
||||
|
||||
adrp x0, crash_console_spinlock
|
||||
add x0, x0, :lo12:crash_console_spinlock
|
||||
bl spin_lock
|
||||
|
||||
skip_spinlock:
|
||||
|
|
Loading…
Add table
Reference in a new issue