summaryrefslogtreecommitdiff
path: root/bl32
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2017-07-27 14:59:34 -0700
committerJulius Werner <jwerner@chromium.org>2017-08-21 13:50:54 -0700
commit4d91838b8d01a9e99c44fd0ed72f5d81b4595f17 (patch)
tree710929f9ed09fc109d0e998f65839c713dc671a2 /bl32
parent5ae4dab2b86351579d85d5f5a8f85252336381b8 (diff)
Fix x30 reporting for unhandled exceptions
Some error paths that lead to a crash dump will overwrite the value in the x30 register by calling functions with the no_ret macro, which resolves to a BL instruction. This is not very useful and not what the reader would expect, since a crash dump should usually show all registers in the state they were in when the exception happened. This patch replaces the offending function calls with a B instruction to preserve the value in x30. Change-Id: I2a3636f2943f79bab0cd911f89d070012e697c2a Signed-off-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'bl32')
-rw-r--r--bl32/tsp/aarch64/tsp_exceptions.S28
1 files changed, 14 insertions, 14 deletions
diff --git a/bl32/tsp/aarch64/tsp_exceptions.S b/bl32/tsp/aarch64/tsp_exceptions.S
index 96d958eb..4b2ad75e 100644
--- a/bl32/tsp/aarch64/tsp_exceptions.S
+++ b/bl32/tsp/aarch64/tsp_exceptions.S
@@ -81,19 +81,19 @@ vector_base tsp_exceptions
* -----------------------------------------------------
*/
vector_entry sync_exception_sp_el0
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size sync_exception_sp_el0
vector_entry irq_sp_el0
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size irq_sp_el0
vector_entry fiq_sp_el0
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size fiq_sp_el0
vector_entry serror_sp_el0
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size serror_sp_el0
@@ -103,7 +103,7 @@ vector_entry serror_sp_el0
* -----------------------------------------------------
*/
vector_entry sync_exception_sp_elx
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size sync_exception_sp_elx
vector_entry irq_sp_elx
@@ -115,7 +115,7 @@ vector_entry fiq_sp_elx
check_vector_size fiq_sp_elx
vector_entry serror_sp_elx
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size serror_sp_elx
@@ -125,19 +125,19 @@ vector_entry serror_sp_elx
* -----------------------------------------------------
*/
vector_entry sync_exception_aarch64
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size sync_exception_aarch64
vector_entry irq_aarch64
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size irq_aarch64
vector_entry fiq_aarch64
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size fiq_aarch64
vector_entry serror_aarch64
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size serror_aarch64
@@ -147,17 +147,17 @@ vector_entry serror_aarch64
* -----------------------------------------------------
*/
vector_entry sync_exception_aarch32
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size sync_exception_aarch32
vector_entry irq_aarch32
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size irq_aarch32
vector_entry fiq_aarch32
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size fiq_aarch32
vector_entry serror_aarch32
- no_ret plat_panic_handler
+ b plat_panic_handler
check_vector_size serror_aarch32