浏览代码

x86: unify smp_intr_init() in irqinit_{32,64}.h

Impact: cleanup

Reviewed-by Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg 16 年之前
父节点
当前提交
b0096bb0b6
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 5 3
      arch/x86/kernel/irqinit_32.c
  2. 2 0
      arch/x86/kernel/irqinit_64.c

+ 5 - 3
arch/x86/kernel/irqinit_32.c

@@ -123,7 +123,8 @@ void init_IRQ(void) __attribute__((weak, alias("native_init_IRQ")));
 
 
 static void __init smp_intr_init(void)
 static void __init smp_intr_init(void)
 {
 {
-#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_SMP)
+#ifdef CONFIG_SMP
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_LOCAL_APIC)
 	/*
 	/*
 	 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
 	 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
 	 * IPI, driven by wakeup.
 	 * IPI, driven by wakeup.
@@ -143,14 +144,15 @@ static void __init smp_intr_init(void)
 	/* IPI for generic function call */
 	/* IPI for generic function call */
 	alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
 	alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
 
 
-	/* IPI for single call function */
+	/* IPI for generic single function call */
 	alloc_intr_gate(CALL_FUNCTION_SINGLE_VECTOR,
 	alloc_intr_gate(CALL_FUNCTION_SINGLE_VECTOR,
-				 call_function_single_interrupt);
+			call_function_single_interrupt);
 
 
 	/* Low priority IPI to cleanup after moving an irq */
 	/* Low priority IPI to cleanup after moving an irq */
 	set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
 	set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
 	set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
 	set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
 #endif
 #endif
+#endif /* CONFIG_SMP */
 }
 }
 
 
 /**
 /**

+ 2 - 0
arch/x86/kernel/irqinit_64.c

@@ -107,6 +107,7 @@ void init_IRQ(void) __attribute__((weak, alias("native_init_IRQ")));
 static void __init smp_intr_init(void)
 static void __init smp_intr_init(void)
 {
 {
 #ifdef CONFIG_SMP
 #ifdef CONFIG_SMP
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_LOCAL_APIC)
 	/*
 	/*
 	 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
 	 * The reschedule interrupt is a CPU-to-CPU reschedule-helper
 	 * IPI, driven by wakeup.
 	 * IPI, driven by wakeup.
@@ -134,6 +135,7 @@ static void __init smp_intr_init(void)
 	set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
 	set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
 	set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
 	set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
 #endif
 #endif
+#endif /* CONFIG_SMP */
 }
 }
 
 
 static void __init apic_intr_init(void)
 static void __init apic_intr_init(void)