diff options
Diffstat (limited to 'arch/x86/kernel/irqinit_64.c')
-rw-r--r-- | arch/x86/kernel/irqinit_64.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c index 8cd10537fd46..1c8858bb27f2 100644 --- a/arch/x86/kernel/irqinit_64.c +++ b/arch/x86/kernel/irqinit_64.c | |||
@@ -159,15 +159,16 @@ void __init native_init_IRQ(void) | |||
159 | int i; | 159 | int i; |
160 | 160 | ||
161 | init_ISA_irqs(); | 161 | init_ISA_irqs(); |
162 | |||
162 | /* | 163 | /* |
163 | * Cover the whole vector space, no vector can escape | 164 | * Cover the whole vector space, no vector can escape |
164 | * us. (some of these will be overridden and become | 165 | * us. (some of these will be overridden and become |
165 | * 'special' SMP interrupts) | 166 | * 'special' SMP interrupts) |
166 | */ | 167 | */ |
167 | for (i = 0; i < (NR_VECTORS - FIRST_EXTERNAL_VECTOR); i++) { | 168 | for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) { |
168 | int vector = FIRST_EXTERNAL_VECTOR + i; | 169 | /* IA32_SYSCALL_VECTOR was reserved in trap_init. */ |
169 | if (vector != IA32_SYSCALL_VECTOR) | 170 | if (i != IA32_SYSCALL_VECTOR) |
170 | set_intr_gate(vector, interrupt[i]); | 171 | set_intr_gate(i, interrupt[i-FIRST_EXTERNAL_VECTOR]); |
171 | } | 172 | } |
172 | 173 | ||
173 | apic_intr_init(); | 174 | apic_intr_init(); |