During native_init_IRQ(), we will update first_system_vector conditionally when we init system vector. But on !CONFIG_X86_LOCAL_PIC, we prefer it to NR_IRQS, so don't bother set it on this case.
Signed-off-by: Jianyu Zhan <nasa4...@gmail.com> --- arch/x86/include/asm/desc.h | 2 ++ arch/x86/kernel/irqinit.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h index 4e10d73..4fc2deb 100644 --- a/arch/x86/include/asm/desc.h +++ b/arch/x86/include/asm/desc.h @@ -383,8 +383,10 @@ static inline void alloc_system_vector(int vector) { if (!test_bit(vector, used_vectors)) { set_bit(vector, used_vectors); +#ifdef CONFIG_X86_LOCAL_APIC if (first_system_vector > vector) first_system_vector = vector; +#endif } else { BUG(); } diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c index 0e9fa7c..e999b38 100644 --- a/arch/x86/kernel/irqinit.c +++ b/arch/x86/kernel/irqinit.c @@ -188,9 +188,6 @@ void __init native_init_IRQ(void) * 'special' SMP interrupts) */ i = FIRST_EXTERNAL_VECTOR; -#ifndef CONFIG_X86_LOCAL_APIC -#define first_system_vector NR_VECTORS -#endif for_each_clear_bit_from(i, used_vectors, first_system_vector) { /* IA32_SYSCALL_VECTOR could be used in trap_init already. */ set_intr_gate(i, irq_entries_start + -- 2.4.3