|
@@ -37,6 +37,7 @@
|
|
|
#include <asm/cmpxchg.h>
|
|
|
#include <asm/cpufeature.h>
|
|
|
#include <asm/exception.h>
|
|
|
+#include <asm/daifflags.h>
|
|
|
#include <asm/debug-monitors.h>
|
|
|
#include <asm/esr.h>
|
|
|
#include <asm/sysreg.h>
|
|
@@ -776,7 +777,7 @@ asmlinkage void __exception do_el0_ia_bp_hardening(unsigned long addr,
|
|
|
if (addr > TASK_SIZE)
|
|
|
arm64_apply_bp_hardening();
|
|
|
|
|
|
- local_irq_enable();
|
|
|
+ local_daif_restore(DAIF_PROCCTX);
|
|
|
do_mem_abort(addr, esr, regs);
|
|
|
}
|
|
|
|
|
@@ -790,7 +791,7 @@ asmlinkage void __exception do_sp_pc_abort(unsigned long addr,
|
|
|
if (user_mode(regs)) {
|
|
|
if (instruction_pointer(regs) > TASK_SIZE)
|
|
|
arm64_apply_bp_hardening();
|
|
|
- local_irq_enable();
|
|
|
+ local_daif_restore(DAIF_PROCCTX);
|
|
|
}
|
|
|
|
|
|
clear_siginfo(&info);
|