diff options
| author | Yinghai Lu <yinghai@kernel.org> | 2009-01-25 02:38:09 -0800 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-01-26 23:37:11 +0100 |
| commit | bb3f0b59ad005d2d2ecbbe9bd048eab6d1ecbd31 (patch) | |
| tree | fd503e9a65bd77601cea99a892a031c6ba086fd8 /arch/x86/kernel/irqinit_64.c | |
| parent | 3415dd9146c574bffe8f012c096bfc2bc62b9508 (diff) | |
x86: make irqinit_32.c more like irqinit_64.c, v2
Impact: cleanup
1. add smp_intr_init and apic_intr_init for 32bit, the same as 64bit
2. move the apic_intr_init() call before set gate with interrupt[i]
3. for 64bit, if ia32_emulation is not used, will make per_cpu to use 0x80 vector.
[ v2: should use !test_bit() instead of test_bit() with 32bit ]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/irqinit_64.c')
| -rw-r--r-- | arch/x86/kernel/irqinit_64.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c index 6a71bfc51e51..16e1fc687504 100644 --- a/arch/x86/kernel/irqinit_64.c +++ b/arch/x86/kernel/irqinit_64.c @@ -162,6 +162,9 @@ void __init native_init_IRQ(void) int i; init_ISA_irqs(); + + apic_intr_init(); + /* * Cover the whole vector space, no vector can escape * us. (some of these will be overridden and become @@ -169,12 +172,10 @@ void __init native_init_IRQ(void) */ for (i = 0; i < (NR_VECTORS - FIRST_EXTERNAL_VECTOR); i++) { int vector = FIRST_EXTERNAL_VECTOR + i; - if (vector != IA32_SYSCALL_VECTOR) + if (!test_bit(vector, used_vectors)) set_intr_gate(vector, interrupt[i]); } - apic_intr_init(); - if (!acpi_ioapic) setup_irq(2, &irq2); } |
