aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2009-04-09 04:52:21 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-10 08:35:54 -0400
commit22813c45228160b07244a7c4ed7580388ac0f33d (patch)
treed2001a0e385725425089464ff4ab4f761087a8b3 /arch/x86
parent36290d87f5abf260a543e5b711be4ceed03e6b1a (diff)
x86: introduce apic_intr_init() in irqinit_32.c
Impact: cleanup Reviewed-by Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/irqinit_32.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/arch/x86/kernel/irqinit_32.c b/arch/x86/kernel/irqinit_32.c
index df0aad5a0624..9ba68c4557b1 100644
--- a/arch/x86/kernel/irqinit_32.c
+++ b/arch/x86/kernel/irqinit_32.c
@@ -171,25 +171,8 @@ static void __init x86_quirk_pre_intr_init(void)
171 init_ISA_irqs(); 171 init_ISA_irqs();
172} 172}
173 173
174void __init native_init_IRQ(void) 174static void __init apic_intr_init(void)
175{ 175{
176 int i;
177
178 /* Execute any quirks before the call gates are initialised: */
179 x86_quirk_pre_intr_init();
180
181 /*
182 * Cover the whole vector space, no vector can escape
183 * us. (some of these will be overridden and become
184 * 'special' SMP interrupts)
185 */
186 for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) {
187 /* SYSCALL_VECTOR was reserved in trap_init. */
188 if (i != SYSCALL_VECTOR)
189 set_intr_gate(i, interrupt[i-FIRST_EXTERNAL_VECTOR]);
190 }
191
192
193 smp_intr_init(); 176 smp_intr_init();
194 177
195#ifdef CONFIG_X86_LOCAL_APIC 178#ifdef CONFIG_X86_LOCAL_APIC
@@ -208,6 +191,27 @@ void __init native_init_IRQ(void)
208 /* thermal monitor LVT interrupt */ 191 /* thermal monitor LVT interrupt */
209 alloc_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt); 192 alloc_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt);
210#endif 193#endif
194}
195
196void __init native_init_IRQ(void)
197{
198 int i;
199
200 /* Execute any quirks before the call gates are initialised: */
201 x86_quirk_pre_intr_init();
202
203 /*
204 * Cover the whole vector space, no vector can escape
205 * us. (some of these will be overridden and become
206 * 'special' SMP interrupts)
207 */
208 for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) {
209 /* SYSCALL_VECTOR was reserved in trap_init. */
210 if (i != SYSCALL_VECTOR)
211 set_intr_gate(i, interrupt[i-FIRST_EXTERNAL_VECTOR]);
212 }
213
214 apic_intr_init();
211 215
212 if (!acpi_ioapic) 216 if (!acpi_ioapic)
213 setup_irq(2, &irq2); 217 setup_irq(2, &irq2);