diff options
| -rw-r--r-- | arch/x86/kernel/traps.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index c9dd74124038..73b3ea32245a 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
| @@ -224,23 +224,17 @@ dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \ | |||
| 224 | do_error_trap(regs, error_code, str, trapnr, signr); \ | 224 | do_error_trap(regs, error_code, str, trapnr, signr); \ |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | #define DO_ERROR_INFO(trapnr, signr, str, name) \ | 227 | DO_ERROR(X86_TRAP_DE, SIGFPE, "divide error", divide_error) |
| 228 | dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \ | 228 | DO_ERROR(X86_TRAP_OF, SIGSEGV, "overflow", overflow) |
| 229 | { \ | 229 | DO_ERROR(X86_TRAP_BR, SIGSEGV, "bounds", bounds) |
| 230 | do_error_trap(regs, error_code, str, trapnr, signr); \ | 230 | DO_ERROR(X86_TRAP_UD, SIGILL, "invalid opcode", invalid_op) |
| 231 | } | 231 | DO_ERROR(X86_TRAP_OLD_MF, SIGFPE, "coprocessor segment overrun",coprocessor_segment_overrun) |
| 232 | 232 | DO_ERROR(X86_TRAP_TS, SIGSEGV, "invalid TSS", invalid_TSS) | |
| 233 | DO_ERROR_INFO(X86_TRAP_DE, SIGFPE, "divide error", divide_error) | 233 | DO_ERROR(X86_TRAP_NP, SIGBUS, "segment not present", segment_not_present) |
| 234 | DO_ERROR (X86_TRAP_OF, SIGSEGV, "overflow", overflow) | ||
| 235 | DO_ERROR (X86_TRAP_BR, SIGSEGV, "bounds", bounds) | ||
| 236 | DO_ERROR_INFO(X86_TRAP_UD, SIGILL, "invalid opcode", invalid_op) | ||
| 237 | DO_ERROR (X86_TRAP_OLD_MF, SIGFPE, "coprocessor segment overrun", coprocessor_segment_overrun) | ||
| 238 | DO_ERROR (X86_TRAP_TS, SIGSEGV, "invalid TSS", invalid_TSS) | ||
| 239 | DO_ERROR (X86_TRAP_NP, SIGBUS, "segment not present", segment_not_present) | ||
| 240 | #ifdef CONFIG_X86_32 | 234 | #ifdef CONFIG_X86_32 |
| 241 | DO_ERROR (X86_TRAP_SS, SIGBUS, "stack segment", stack_segment) | 235 | DO_ERROR(X86_TRAP_SS, SIGBUS, "stack segment", stack_segment) |
| 242 | #endif | 236 | #endif |
| 243 | DO_ERROR_INFO(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check) | 237 | DO_ERROR(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check) |
| 244 | 238 | ||
| 245 | #ifdef CONFIG_X86_64 | 239 | #ifdef CONFIG_X86_64 |
| 246 | /* Runs on IST stack */ | 240 | /* Runs on IST stack */ |
