aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic_32.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-08 03:53:57 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 03:53:57 -0400
commit1b8ba39a3fad9c58532f6dad12c94d6e675be656 (patch)
tree9ae9b4c4545b4c91f5dbb3a1085c4c721961c4f2 /arch/x86/kernel/apic_32.c
parent58cf35228fec541418cc3bd781d6c069d904815e (diff)
parentcbd6712406a3ea861b49fbfd46e23cbf5f8e073f (diff)
Merge branch 'x86/irq' into x86/devel
Conflicts: arch/x86/kernel/i8259.c arch/x86/kernel/irqinit_64.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic_32.c')
-rw-r--r--arch/x86/kernel/apic_32.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index 45d8da405ad9..ce4538ebb7fe 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -70,6 +70,10 @@ static int local_apic_timer_disabled;
70int local_apic_timer_c2_ok; 70int local_apic_timer_c2_ok;
71EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); 71EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok);
72 72
73int first_system_vector = 0xfe;
74
75char system_vectors[NR_VECTORS] = { [0 ... NR_VECTORS-1] = SYS_VECTOR_FREE};
76
73/* 77/*
74 * Debug level, exported for io_apic.c 78 * Debug level, exported for io_apic.c
75 */ 79 */
@@ -1351,13 +1355,13 @@ void __init smp_intr_init(void)
1351 * The reschedule interrupt is a CPU-to-CPU reschedule-helper 1355 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
1352 * IPI, driven by wakeup. 1356 * IPI, driven by wakeup.
1353 */ 1357 */
1354 set_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt); 1358 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
1355 1359
1356 /* IPI for invalidation */ 1360 /* IPI for invalidation */
1357 set_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt); 1361 alloc_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt);
1358 1362
1359 /* IPI for generic function call */ 1363 /* IPI for generic function call */
1360 set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); 1364 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
1361} 1365}
1362#endif 1366#endif
1363 1367
@@ -1370,15 +1374,15 @@ void __init apic_intr_init(void)
1370 smp_intr_init(); 1374 smp_intr_init();
1371#endif 1375#endif
1372 /* self generated IPI for local APIC timer */ 1376 /* self generated IPI for local APIC timer */
1373 set_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt); 1377 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt);
1374 1378
1375 /* IPI vectors for APIC spurious and error interrupts */ 1379 /* IPI vectors for APIC spurious and error interrupts */
1376 set_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt); 1380 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt);
1377 set_intr_gate(ERROR_APIC_VECTOR, error_interrupt); 1381 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt);
1378 1382
1379 /* thermal monitor LVT interrupt */ 1383 /* thermal monitor LVT interrupt */
1380#ifdef CONFIG_X86_MCE_P4THERMAL 1384#ifdef CONFIG_X86_MCE_P4THERMAL
1381 set_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt); 1385 alloc_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt);
1382#endif 1386#endif
1383} 1387}
1384 1388