x86: merge smp_send_reschedule
authorGlauber Costa <gcosta@redhat.com>
Mon, 3 Mar 2008 17:12:34 +0000 (14:12 -0300)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:40:53 +0000 (17:40 +0200)
function definition is moved to common header, x86_64 version is now called
native_smp_send_reschedule

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/smp_64.c
include/asm-x86/smp.h
include/asm-x86/smp_32.h
include/asm-x86/smp_64.h

index 80dba12b56af1bca8ae8e1d3a079cb52ea693404..fd1816123496473514a8c45aeec12497b5832c4e 100644 (file)
@@ -290,8 +290,9 @@ void flush_tlb_all(void)
  * anything. Worst case is that we lose a reschedule ...
  */
 
-void smp_send_reschedule(int cpu)
+static void native_smp_send_reschedule(int cpu)
 {
+       WARN_ON(cpu_is_offline(cpu));
        send_IPI_mask(cpumask_of_cpu(cpu), RESCHEDULE_VECTOR);
 }
 
@@ -528,5 +529,7 @@ asmlinkage void smp_call_function_interrupt(void)
        }
 }
 
-struct smp_ops smp_ops;
+struct smp_ops smp_ops = {
+       .smp_send_reschedule = native_smp_send_reschedule,
+};
 EXPORT_SYMBOL_GPL(smp_ops);
index ee98beeb7511d9e7d56f1475441041869a6385f3..28f33c03d79382e36ed96b754f373b53e1f2e1c6 100644 (file)
@@ -23,6 +23,11 @@ struct smp_ops {
 
 #ifdef CONFIG_SMP
 extern struct smp_ops smp_ops;
+
+static inline void smp_send_reschedule(int cpu)
+{
+       smp_ops.smp_send_reschedule(cpu);
+}
 #endif
 
 #ifdef CONFIG_X86_32
index 74755e8ffc77dd8e3f67006b6084438385783108..c60a3dd3e802ceb75da84b6a0d0869bb75aea27c 100644 (file)
@@ -60,10 +60,6 @@ static inline void smp_send_stop(void)
 {
        smp_ops.smp_send_stop();
 }
-static inline void smp_send_reschedule(int cpu)
-{
-       smp_ops.smp_send_reschedule(cpu);
-}
 static inline int smp_call_function_mask(cpumask_t mask,
                                         void (*func) (void *info), void *info,
                                         int wait)
index 284f701f2a8b707058a22bf15408d4e37c5d7acf..b9204584aa064ecee1161379a34bffc6a4853b5f 100644 (file)
@@ -65,8 +65,6 @@ static inline int num_booting_cpus(void)
        return cpus_weight(cpu_callout_map);
 }
 
-extern void smp_send_reschedule(int cpu);
-
 #else /* CONFIG_SMP */
 
 extern unsigned int boot_cpu_id;