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} |