aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/traps_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/traps_32.c')
-rw-r--r--arch/x86/kernel/traps_32.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c
index c18824b9d1ab..e3c4809f414a 100644
--- a/arch/x86/kernel/traps_32.c
+++ b/arch/x86/kernel/traps_32.c
@@ -633,9 +633,6 @@ void do_##name(struct pt_regs *regs, long error_code) \
633} 633}
634 634
635DO_VM86_ERROR_INFO(0, SIGFPE, "divide error", divide_error, FPE_INTDIV, regs->ip) 635DO_VM86_ERROR_INFO(0, SIGFPE, "divide error", divide_error, FPE_INTDIV, regs->ip)
636#ifndef CONFIG_KPROBES
637DO_VM86_TRAP(3, SIGTRAP, "int3", int3)
638#endif
639DO_VM86_TRAP(4, SIGSEGV, "overflow", overflow) 636DO_VM86_TRAP(4, SIGSEGV, "overflow", overflow)
640DO_VM86_TRAP(5, SIGSEGV, "bounds", bounds) 637DO_VM86_TRAP(5, SIGSEGV, "bounds", bounds)
641DO_TRAP_INFO(6, SIGILL, "invalid opcode", invalid_op, ILL_ILLOPN, regs->ip, 0) 638DO_TRAP_INFO(6, SIGILL, "invalid opcode", invalid_op, ILL_ILLOPN, regs->ip, 0)
@@ -907,9 +904,9 @@ void restart_nmi(void)
907 acpi_nmi_enable(); 904 acpi_nmi_enable();
908} 905}
909 906
910#ifdef CONFIG_KPROBES
911void __kprobes do_int3(struct pt_regs *regs, long error_code) 907void __kprobes do_int3(struct pt_regs *regs, long error_code)
912{ 908{
909#ifdef CONFIG_KPROBES
913 trace_hardirqs_fixup(); 910 trace_hardirqs_fixup();
914 911
915 if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) 912 if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP)
@@ -920,10 +917,14 @@ void __kprobes do_int3(struct pt_regs *regs, long error_code)
920 * disabled. Normal trap handlers don't. 917 * disabled. Normal trap handlers don't.
921 */ 918 */
922 conditional_sti(regs); 919 conditional_sti(regs);
920#else
921 if (notify_die(DIE_TRAP, "int3", regs, error_code, 3, SIGTRAP)
922 == NOTIFY_STOP)
923 return;
924#endif
923 925
924 do_trap(3, SIGTRAP, "int3", 1, regs, error_code, NULL); 926 do_trap(3, SIGTRAP, "int3", 1, regs, error_code, NULL);
925} 927}
926#endif
927 928
928/* 929/*
929 * Our handling of the processor debug registers is non-trivial. 930 * Our handling of the processor debug registers is non-trivial.