traps.c (b322c65f8ca37396cfd7d4d0ac2f7f2dc08fa9eb) traps.c (69ea03b56ed2c7189ccd0b5910ad39f3cad1df21)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Based on arch/arm/kernel/traps.c
4 *
5 * Copyright (C) 1995-2009 Russell King
6 * Copyright (C) 2012 ARM Ltd.
7 */
8

--- 892 unchanged lines hidden (view full) ---

901 default:
902 /* Error has been silently propagated */
903 arm64_serror_panic(regs, esr);
904 }
905}
906
907asmlinkage void do_serror(struct pt_regs *regs, unsigned int esr)
908{
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Based on arch/arm/kernel/traps.c
4 *
5 * Copyright (C) 1995-2009 Russell King
6 * Copyright (C) 2012 ARM Ltd.
7 */
8

--- 892 unchanged lines hidden (view full) ---

901 default:
902 /* Error has been silently propagated */
903 arm64_serror_panic(regs, esr);
904 }
905}
906
907asmlinkage void do_serror(struct pt_regs *regs, unsigned int esr)
908{
909 const bool was_in_nmi = in_nmi();
909 nmi_enter();
910
910
911 if (!was_in_nmi)
912 nmi_enter();
913
914 /* non-RAS errors are not containable */
915 if (!arm64_is_ras_serror(esr) || arm64_is_fatal_ras_serror(regs, esr))
916 arm64_serror_panic(regs, esr);
917
911 /* non-RAS errors are not containable */
912 if (!arm64_is_ras_serror(esr) || arm64_is_fatal_ras_serror(regs, esr))
913 arm64_serror_panic(regs, esr);
914
918 if (!was_in_nmi)
919 nmi_exit();
915 nmi_exit();
920}
921
922asmlinkage void enter_from_user_mode(void)
923{
924 CT_WARN_ON(ct_state() != CONTEXT_USER);
925 user_exit_irqoff();
926}
927NOKPROBE_SYMBOL(enter_from_user_mode);

--- 114 unchanged lines hidden (view full) ---

1042 unsigned int comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
1043
1044 if ((comment & ~KASAN_BRK_MASK) == KASAN_BRK_IMM)
1045 return kasan_handler(regs, esr) != DBG_HOOK_HANDLED;
1046#endif
1047 return bug_handler(regs, esr) != DBG_HOOK_HANDLED;
1048}
1049
916}
917
918asmlinkage void enter_from_user_mode(void)
919{
920 CT_WARN_ON(ct_state() != CONTEXT_USER);
921 user_exit_irqoff();
922}
923NOKPROBE_SYMBOL(enter_from_user_mode);

--- 114 unchanged lines hidden (view full) ---

1038 unsigned int comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
1039
1040 if ((comment & ~KASAN_BRK_MASK) == KASAN_BRK_IMM)
1041 return kasan_handler(regs, esr) != DBG_HOOK_HANDLED;
1042#endif
1043 return bug_handler(regs, esr) != DBG_HOOK_HANDLED;
1044}
1045
1046/* This registration must happen early, before debug_traps_init(). */
1050void __init trap_init(void)
1051{
1052 register_kernel_break_hook(&bug_break_hook);
1053#ifdef CONFIG_KASAN_SW_TAGS
1054 register_kernel_break_hook(&kasan_break_hook);
1055#endif
1047void __init trap_init(void)
1048{
1049 register_kernel_break_hook(&bug_break_hook);
1050#ifdef CONFIG_KASAN_SW_TAGS
1051 register_kernel_break_hook(&kasan_break_hook);
1052#endif
1056 debug_traps_init();
1057}
1053}