summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@fastmail.fm>2008-09-09 21:56:08 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-13 10:20:31 +0200
commitcf81978d5fb32ab75f701690b372e1126b41861f (patch)
tree4da7a2b401dc20aed75340a95801051506722a58 /arch/x86
parentc6df0d71bec391e78e0a38109d63154acd69a937 (diff)
downloadkernel-common-cf81978d5fb32ab75f701690b372e1126b41861f.tar.gz
kernel-common-cf81978d5fb32ab75f701690b372e1126b41861f.tar.bz2
kernel-common-cf81978d5fb32ab75f701690b372e1126b41861f.zip
i386: convert hardware exception 15 to an interrupt gate
Handle exception 15 with interrupt initially off. Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/traps_32.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c
index e2598505ef5c..0039856b6344 100644
--- a/arch/x86/kernel/traps_32.c
+++ b/arch/x86/kernel/traps_32.c
@@ -1164,6 +1164,7 @@ void do_simd_coprocessor_error(struct pt_regs *regs, long error_code)
void do_spurious_interrupt_bug(struct pt_regs *regs, long error_code)
{
+ conditional_sti(regs);
#if 0
/* No need to warn about this any longer. */
printk(KERN_INFO "Ignoring P6 Local APIC Spurious Interrupt Bug...\n");
@@ -1277,7 +1278,7 @@ void __init trap_init(void)
set_intr_gate(12, &stack_segment);
set_intr_gate(13, &general_protection);
set_intr_gate(14, &page_fault);
- set_trap_gate(15, &spurious_interrupt_bug);
+ set_intr_gate(15, &spurious_interrupt_bug);
set_trap_gate(16, &coprocessor_error);
set_trap_gate(17, &alignment_check);
#ifdef CONFIG_X86_MCE