diff options
author | Alan Mayer <ajm@sgi.com> | 2008-04-15 16:36:56 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-05-12 15:28:06 -0400 |
commit | 305b92a2323eeaa4b481f409d54f778dd7e21a46 (patch) | |
tree | 0f32832b033de27b2ae5909bb06d4eabdd1a9b0b /arch/x86/kernel/i8259_64.c | |
parent | 1a331957efd214fc3a84f70956dfaec65e70c031 (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.c | 30 |
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); |