|
@@ -670,8 +670,7 @@ el0_da:
|
|
|
* Data abort handling
|
|
|
*/
|
|
|
mrs x26, far_el1
|
|
|
- // enable interrupts before calling the main handler
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
clear_address_tag x0, x26
|
|
|
mov x1, x25
|
|
@@ -683,8 +682,7 @@ el0_ia:
|
|
|
* Instruction abort handling
|
|
|
*/
|
|
|
mrs x26, far_el1
|
|
|
- // enable interrupts before calling the main handler
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, x26
|
|
|
mov x1, x25
|
|
@@ -695,7 +693,7 @@ el0_fpsimd_acc:
|
|
|
/*
|
|
|
* Floating Point or Advanced SIMD access
|
|
|
*/
|
|
|
- enable_dbg
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, x25
|
|
|
mov x1, sp
|
|
@@ -705,7 +703,7 @@ el0_fpsimd_exc:
|
|
|
/*
|
|
|
* Floating Point or Advanced SIMD exception
|
|
|
*/
|
|
|
- enable_dbg
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, x25
|
|
|
mov x1, sp
|
|
@@ -716,8 +714,7 @@ el0_sp_pc:
|
|
|
* Stack or PC alignment exception handling
|
|
|
*/
|
|
|
mrs x26, far_el1
|
|
|
- // enable interrupts before calling the main handler
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, x26
|
|
|
mov x1, x25
|
|
@@ -728,8 +725,7 @@ el0_undef:
|
|
|
/*
|
|
|
* Undefined instruction
|
|
|
*/
|
|
|
- // enable interrupts before calling the main handler
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, sp
|
|
|
bl do_undefinstr
|
|
@@ -738,7 +734,7 @@ el0_sys:
|
|
|
/*
|
|
|
* System instructions, for trapped cache maintenance instructions
|
|
|
*/
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, x25
|
|
|
mov x1, sp
|
|
@@ -753,11 +749,11 @@ el0_dbg:
|
|
|
mov x1, x25
|
|
|
mov x2, sp
|
|
|
bl do_debug_exception
|
|
|
- enable_dbg
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
b ret_to_user
|
|
|
el0_inv:
|
|
|
- enable_dbg
|
|
|
+ enable_daif
|
|
|
ct_user_exit
|
|
|
mov x0, sp
|
|
|
mov x1, #BAD_SYNC
|
|
@@ -836,7 +832,7 @@ el0_svc:
|
|
|
mov wsc_nr, #__NR_syscalls
|
|
|
el0_svc_naked: // compat entry point
|
|
|
stp x0, xscno, [sp, #S_ORIG_X0] // save the original x0 and syscall number
|
|
|
- enable_dbg_and_irq
|
|
|
+ enable_daif
|
|
|
ct_user_exit 1
|
|
|
|
|
|
ldr x16, [tsk, #TSK_TI_FLAGS] // check for syscall hooks
|