x86: I/O APIC: clean up after a fasteoi failure
authorMaciej W. Rozycki <macro@linux-mips.org>
Wed, 21 May 2008 21:09:26 +0000 (22:09 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 8 Jul 2008 07:12:55 +0000 (09:12 +0200)
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>
arch/x86/kernel/io_apic_32.c
arch/x86/kernel/io_apic_64.c

index 61cf366d040f6c5dc623c021864ed4d317ecfb48..e7b7655c4e946132a524654cd14ca983c8a06e5d 100644 (file)
@@ -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");
 
index 9f16ca4b5a240af25733d003a3a24bf4d9a0cafb..6433fc99f1f911531c023d2e2b4620520739ae1d 100644 (file)
@@ -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");