Merge branch 'for-next/errata' into for-next/core
[sfrench/cifs-2.6.git] / arch / arm64 / mm / fault.c
index 86a3877ea86fe73dbed6a36359f8f32d9a04c8f0..56ef9fac21109e607b5eb0c05ad3a6cb8c88c268 100644 (file)
@@ -874,44 +874,12 @@ static void debug_exception_exit(struct pt_regs *regs)
 }
 NOKPROBE_SYMBOL(debug_exception_exit);
 
-#ifdef CONFIG_ARM64_ERRATUM_1463225
-DECLARE_PER_CPU(int, __in_cortex_a76_erratum_1463225_wa);
-
-static int cortex_a76_erratum_1463225_debug_handler(struct pt_regs *regs)
-{
-       if (user_mode(regs))
-               return 0;
-
-       if (!__this_cpu_read(__in_cortex_a76_erratum_1463225_wa))
-               return 0;
-
-       /*
-        * We've taken a dummy step exception from the kernel to ensure
-        * that interrupts are re-enabled on the syscall path. Return back
-        * to cortex_a76_erratum_1463225_svc_handler() with debug exceptions
-        * masked so that we can safely restore the mdscr and get on with
-        * handling the syscall.
-        */
-       regs->pstate |= PSR_D_BIT;
-       return 1;
-}
-#else
-static int cortex_a76_erratum_1463225_debug_handler(struct pt_regs *regs)
-{
-       return 0;
-}
-#endif /* CONFIG_ARM64_ERRATUM_1463225 */
-NOKPROBE_SYMBOL(cortex_a76_erratum_1463225_debug_handler);
-
 void do_debug_exception(unsigned long addr_if_watchpoint, unsigned int esr,
                        struct pt_regs *regs)
 {
        const struct fault_info *inf = esr_to_debug_fault_info(esr);
        unsigned long pc = instruction_pointer(regs);
 
-       if (cortex_a76_erratum_1463225_debug_handler(regs))
-               return;
-
        debug_exception_enter(regs);
 
        if (user_mode(regs) && !is_ttbr0_addr(pc))