diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-06-16 05:17:50 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-16 05:17:50 -0400 |
commit | 1791a78c0b10fe548bf08a2ed7f84a4ea1385430 (patch) | |
tree | 3bc3e71a900a364aaaaf28d553ce44e5dc27092b /arch/x86/kernel/io_apic_32.c | |
parent | bf07dc864902b3e788de5ab50dc62d5677da90f2 (diff) | |
parent | 066519068ad2fbe98c7f45552b1f592903a9c8c8 (diff) |
Merge branch 'linus' into x86/cleanups
Diffstat (limited to 'arch/x86/kernel/io_apic_32.c')
-rw-r--r-- | arch/x86/kernel/io_apic_32.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c index 4fbf656b08b4..3808b7ff93ea 100644 --- a/arch/x86/kernel/io_apic_32.c +++ b/arch/x86/kernel/io_apic_32.c | |||
@@ -2131,14 +2131,10 @@ static inline void __init check_timer(void) | |||
2131 | { | 2131 | { |
2132 | int apic1, pin1, apic2, pin2; | 2132 | int apic1, pin1, apic2, pin2; |
2133 | int vector; | 2133 | int vector; |
2134 | unsigned int ver; | ||
2135 | unsigned long flags; | 2134 | unsigned long flags; |
2136 | 2135 | ||
2137 | local_irq_save(flags); | 2136 | local_irq_save(flags); |
2138 | 2137 | ||
2139 | ver = apic_read(APIC_LVR); | ||
2140 | ver = GET_APIC_VERSION(ver); | ||
2141 | |||
2142 | /* | 2138 | /* |
2143 | * get/set the timer IRQ vector: | 2139 | * get/set the timer IRQ vector: |
2144 | */ | 2140 | */ |
@@ -2151,15 +2147,11 @@ static inline void __init check_timer(void) | |||
2151 | * mode for the 8259A whenever interrupts are routed | 2147 | * mode for the 8259A whenever interrupts are routed |
2152 | * through I/O APICs. Also IRQ0 has to be enabled in | 2148 | * through I/O APICs. Also IRQ0 has to be enabled in |
2153 | * the 8259A which implies the virtual wire has to be | 2149 | * the 8259A which implies the virtual wire has to be |
2154 | * disabled in the local APIC. Finally timer interrupts | 2150 | * disabled in the local APIC. |
2155 | * need to be acknowledged manually in the 8259A for | ||
2156 | * timer_interrupt() and for the i82489DX when using | ||
2157 | * the NMI watchdog. | ||
2158 | */ | 2151 | */ |
2159 | apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); | 2152 | apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); |
2160 | init_8259A(1); | 2153 | init_8259A(1); |
2161 | timer_ack = !cpu_has_tsc; | 2154 | timer_ack = 1; |
2162 | timer_ack |= (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver)); | ||
2163 | if (timer_over_8254 > 0) | 2155 | if (timer_over_8254 > 0) |
2164 | enable_8259A_irq(0); | 2156 | enable_8259A_irq(0); |
2165 | 2157 | ||