diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-08 03:53:57 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 03:53:57 -0400 |
commit | 1b8ba39a3fad9c58532f6dad12c94d6e675be656 (patch) | |
tree | 9ae9b4c4545b4c91f5dbb3a1085c4c721961c4f2 /arch/x86/kernel/apic_32.c | |
parent | 58cf35228fec541418cc3bd781d6c069d904815e (diff) | |
parent | cbd6712406a3ea861b49fbfd46e23cbf5f8e073f (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.c | 18 |
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; | |||
70 | int local_apic_timer_c2_ok; | 70 | int local_apic_timer_c2_ok; |
71 | EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); | 71 | EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); |
72 | 72 | ||
73 | int first_system_vector = 0xfe; | ||
74 | |||
75 | char 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 | ||