[PATCH 3/7] x86, smp: Add wbinvd_on_all_cpus helper

Borislav Petkov
2010-01-21T16:41:28Z

arch/x86/include/asm/smp.h | 2 ++
arch/x86/lib/smp.c | 6 ++++++
2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 090146e..3c8ed3a 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -139,6 +139,7 @@ void play_dead_common(void);
void native_send_call_func_ipi(const struct cpumask *mask);
void native_send_call_func_single_ipi(int cpu);
void wbinvd_on_cpu(int cpu);
+int wbinvd_on_all_cpus(void);

void smp_store_cpu_info(int id);
#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu)
@@ -150,6 +151,7 @@ static inline int num_booting_cpus(void)
}
#else /* !CONFIG_SMP */
#define wbinvd_on_cpu(cpu) wbinvd()
+#define wbinvd_on_all_cpus() wbinvd()
#endif /* CONFIG_SMP */

extern unsigned disabled_cpus __cpuinitdata;
diff --git a/arch/x86/lib/smp.c b/arch/x86/lib/smp.c
index 408c3b7..38f92b0 100644
--- a/arch/x86/lib/smp.c
+++ b/arch/x86/lib/smp.c
@@ -209,3 +209,9 @@ void wbinvd_on_cpu(int cpu)
smp_call_function_single(cpu, native_wbinvd, NULL, 1);
}
EXPORT_SYMBOL(wbinvd_on_cpu);
+
+int wbinvd_on_all_cpus(void)
+{
+ return on_each_cpu(native_wbinvd, NULL, 1);
+}
+EXPORT_SYMBOL(wbinvd_on_all_cpus);
--
1.6.6