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>
This commit is contained in:
Maciej W. Rozycki 2008-05-21 22:09:26 +01:00 committed by Ingo Molnar
parent ecd29476ae
commit e67465f129
2 changed files with 2 additions and 0 deletions

View File

@ -2228,6 +2228,7 @@ static inline void __init check_timer(void)
printk(" works.\n"); printk(" works.\n");
goto out; goto out;
} }
disable_8259A_irq(0);
apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | vector); apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | vector);
printk(" failed.\n"); printk(" failed.\n");

View File

@ -1729,6 +1729,7 @@ static inline void __init check_timer(void)
apic_printk(APIC_VERBOSE," works.\n"); apic_printk(APIC_VERBOSE," works.\n");
goto out; goto out;
} }
disable_8259A_irq(0);
apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector); apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector);
apic_printk(APIC_VERBOSE," failed.\n"); apic_printk(APIC_VERBOSE," failed.\n");