diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2008-05-21 22:09:26 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 09:12:55 +0200 |
commit | e67465f1298671266a8e824c1751afdb7c08c860 (patch) | |
tree | f5501ee5ff90e0f34f215b9e5f28cea0b06502b4 | |
parent | ecd29476ae0143b1c3641edfa76c0fc3e9ad3021 (diff) |
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>
-rw-r--r-- | arch/x86/kernel/io_apic_32.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/io_apic_64.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c index 61cf366d040f..e7b7655c4e94 100644 --- a/arch/x86/kernel/io_apic_32.c +++ b/arch/x86/kernel/io_apic_32.c @@ -2228,6 +2228,7 @@ static inline void __init check_timer(void) printk(" works.\n"); goto out; } + disable_8259A_irq(0); apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | vector); printk(" failed.\n"); 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"); |