summaryrefslogtreecommitdiffstats
path: root/arch/x86/lib/cache-smp.c
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2010-01-22 16:01:03 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-04-26 07:47:56 -0700
commit7d4f404ff0b85103b84fd896c7217d34cc505d85 (patch)
tree787c5419248c560b2011d56b075610ea0fd0916e /arch/x86/lib/cache-smp.c
parent61190b356dfc400db691f1ea0311fed103fe8111 (diff)
downloadkernel-crypto-7d4f404ff0b85103b84fd896c7217d34cc505d85.tar.gz
kernel-crypto-7d4f404ff0b85103b84fd896c7217d34cc505d85.tar.xz
kernel-crypto-7d4f404ff0b85103b84fd896c7217d34cc505d85.zip
x86, lib: Add wbinvd smp helpers
commit a7b480e7f30b3813353ec009f10f2ac7a6669f3b upstream. Add wbinvd_on_cpu and wbinvd_on_all_cpus stubs for executing wbinvd on a particular CPU. [ hpa: renamed lib/smp.c to lib/cache-smp.c ] [ hpa: wbinvd_on_all_cpus() returns int, but wbinvd() returns void. Thus, the former cannot be a macro for the latter, replace with an inline function. ] Signed-off-by: Borislav Petkov <borislav.petkov@amd.com> LKML-Reference: <1264172467-25155-2-git-send-email-bp@amd64.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch/x86/lib/cache-smp.c')
-rw-r--r--arch/x86/lib/cache-smp.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/lib/cache-smp.c b/arch/x86/lib/cache-smp.c
new file mode 100644
index 00000000000..a3c66887503
--- /dev/null
+++ b/arch/x86/lib/cache-smp.c
@@ -0,0 +1,19 @@
+#include <linux/smp.h>
+#include <linux/module.h>
+
+static void __wbinvd(void *dummy)
+{
+ wbinvd();
+}
+
+void wbinvd_on_cpu(int cpu)
+{
+ smp_call_function_single(cpu, __wbinvd, NULL, 1);
+}
+EXPORT_SYMBOL(wbinvd_on_cpu);
+
+int wbinvd_on_all_cpus(void)
+{
+ return on_each_cpu(__wbinvd, NULL, 1);
+}
+EXPORT_SYMBOL(wbinvd_on_all_cpus);