|
@@ -510,11 +510,7 @@ el1_da:
|
|
|
* Data abort handling
|
|
|
*/
|
|
|
mrs x3, far_el1
|
|
|
- enable_dbg
|
|
|
- // re-enable interrupts if they were enabled in the aborted context
|
|
|
- tbnz x23, #7, 1f // PSR_I_BIT
|
|
|
- enable_irq
|
|
|
-1:
|
|
|
+ inherit_daif pstate=x23, tmp=x2
|
|
|
clear_address_tag x0, x3
|
|
|
mov x2, sp // struct pt_regs
|
|
|
bl do_mem_abort
|
|
@@ -525,7 +521,7 @@ el1_sp_pc:
|
|
|
* Stack or PC alignment exception handling
|
|
|
*/
|
|
|
mrs x0, far_el1
|
|
|
- enable_dbg
|
|
|
+ inherit_daif pstate=x23, tmp=x2
|
|
|
mov x2, sp
|
|
|
bl do_sp_pc_abort
|
|
|
ASM_BUG()
|
|
@@ -533,7 +529,7 @@ el1_undef:
|
|
|
/*
|
|
|
* Undefined instruction
|
|
|
*/
|
|
|
- enable_dbg
|
|
|
+ inherit_daif pstate=x23, tmp=x2
|
|
|
mov x0, sp
|
|
|
bl do_undefinstr
|
|
|
ASM_BUG()
|
|
@@ -550,7 +546,7 @@ el1_dbg:
|
|
|
kernel_exit 1
|
|
|
el1_inv:
|
|
|
// TODO: add support for undefined instructions in kernel mode
|
|
|
- enable_dbg
|
|
|
+ inherit_daif pstate=x23, tmp=x2
|
|
|
mov x0, sp
|
|
|
mov x2, x1
|
|
|
mov x1, #BAD_SYNC
|