1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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);