summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/irqinit_64.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2009-01-25 02:38:09 -0800
committerIngo Molnar <mingo@elte.hu>2009-01-26 23:37:11 +0100
commitbb3f0b59ad005d2d2ecbbe9bd048eab6d1ecbd31 (patch)
treefd503e9a65bd77601cea99a892a031c6ba086fd8 /arch/x86/kernel/irqinit_64.c
parent3415dd9146c574bffe8f012c096bfc2bc62b9508 (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.c7
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);
}