summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic_64.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki2008-05-21 23:09:26 +0200
committerIngo Molnar2008-07-08 09:12:55 +0200
commite67465f1298671266a8e824c1751afdb7c08c860 (patch)
treef5501ee5ff90e0f34f215b9e5f28cea0b06502b4 /arch/x86/kernel/io_apic_64.c
parentx86: I/O APIC: remove parameters to fiddle with the 8259A (diff)
downloadkernel-qcow2-linux-e67465f1298671266a8e824c1751afdb7c08c860.tar.gz
kernel-qcow2-linux-e67465f1298671266a8e824c1751afdb7c08c860.tar.xz
kernel-qcow2-linux-e67465f1298671266a8e824c1751afdb7c08c860.zip
x86: I/O APIC: clean up after a fasteoi failure
Disable the 8259A when routing of the timer interrupt through the chip to the local APIC of the primary processor has failed. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/io_apic_64.c')
-rw-r--r--arch/x86/kernel/io_apic_64.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 9f16ca4b5a24..6433fc99f1f9 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -1729,6 +1729,7 @@ static inline void __init check_timer(void)
apic_printk(APIC_VERBOSE," works.\n");
goto out;
}
+ disable_8259A_irq(0);
apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector);
apic_printk(APIC_VERBOSE," failed.\n");