aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/i8259_64.c
diff options
context:
space:
mode:
authorAlan Mayer <ajm@sgi.com>2008-04-15 16:36:56 -0400
committerIngo Molnar <mingo@elte.hu>2008-05-12 15:28:06 -0400
commit305b92a2323eeaa4b481f409d54f778dd7e21a46 (patch)
tree0f32832b033de27b2ae5909bb06d4eabdd1a9b0b /arch/x86/kernel/i8259_64.c
parent1a331957efd214fc3a84f70956dfaec65e70c031 (diff)
x86: change FIRST_SYSTEM_VECTOR to a variable
The SGI UV system needs several more system vectors than a vanilla x86_64 system. Rather than burden the other archs with extra system vectors that they don't use, change FIRST_SYSTEM_VECTOR to a variable, so that it can be dynamic. Signed-off-by: Alan Mayer <ajm@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/i8259_64.c')
-rw-r--r--arch/x86/kernel/i8259_64.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/arch/x86/kernel/i8259_64.c b/arch/x86/kernel/i8259_64.c
index c4ae4769ce67..1870e0e86559 100644
--- a/arch/x86/kernel/i8259_64.c
+++ b/arch/x86/kernel/i8259_64.c
@@ -493,33 +493,33 @@ void __init native_init_IRQ(void)
493 * The reschedule interrupt is a CPU-to-CPU reschedule-helper 493 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
494 * IPI, driven by wakeup. 494 * IPI, driven by wakeup.
495 */ 495 */
496 set_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt); 496 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
497 497
498 /* IPIs for invalidation */ 498 /* IPIs for invalidation */
499 set_intr_gate(INVALIDATE_TLB_VECTOR_START+0, invalidate_interrupt0); 499 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+0, invalidate_interrupt0);
500 set_intr_gate(INVALIDATE_TLB_VECTOR_START+1, invalidate_interrupt1); 500 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+1, invalidate_interrupt1);
501 set_intr_gate(INVALIDATE_TLB_VECTOR_START+2, invalidate_interrupt2); 501 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+2, invalidate_interrupt2);
502 set_intr_gate(INVALIDATE_TLB_VECTOR_START+3, invalidate_interrupt3); 502 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+3, invalidate_interrupt3);
503 set_intr_gate(INVALIDATE_TLB_VECTOR_START+4, invalidate_interrupt4); 503 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+4, invalidate_interrupt4);
504 set_intr_gate(INVALIDATE_TLB_VECTOR_START+5, invalidate_interrupt5); 504 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+5, invalidate_interrupt5);
505 set_intr_gate(INVALIDATE_TLB_VECTOR_START+6, invalidate_interrupt6); 505 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+6, invalidate_interrupt6);
506 set_intr_gate(INVALIDATE_TLB_VECTOR_START+7, invalidate_interrupt7); 506 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+7, invalidate_interrupt7);
507 507
508 /* IPI for generic function call */ 508 /* IPI for generic function call */
509 set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); 509 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
510 510
511 /* Low priority IPI to cleanup after moving an irq */ 511 /* Low priority IPI to cleanup after moving an irq */
512 set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt); 512 set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
513#endif 513#endif
514 set_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt); 514 alloc_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt);
515 set_intr_gate(THRESHOLD_APIC_VECTOR, threshold_interrupt); 515 alloc_intr_gate(THRESHOLD_APIC_VECTOR, threshold_interrupt);
516 516
517 /* self generated IPI for local APIC timer */ 517 /* self generated IPI for local APIC timer */
518 set_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt); 518 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt);
519 519
520 /* IPI vectors for APIC spurious and error interrupts */ 520 /* IPI vectors for APIC spurious and error interrupts */
521 set_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt); 521 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt);
522 set_intr_gate(ERROR_APIC_VECTOR, error_interrupt); 522 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt);
523 523
524 if (!acpi_ioapic) 524 if (!acpi_ioapic)
525 setup_irq(2, &irq2); 525 setup_irq(2, &irq2);