1a7b480e7SBorislav Petkov #include <linux/smp.h> 2a7b480e7SBorislav Petkov #include <linux/module.h> 3a7b480e7SBorislav Petkov 4a7b480e7SBorislav Petkov static void __wbinvd(void *dummy) 5a7b480e7SBorislav Petkov { 6a7b480e7SBorislav Petkov wbinvd(); 7a7b480e7SBorislav Petkov } 8a7b480e7SBorislav Petkov 9a7b480e7SBorislav Petkov void wbinvd_on_cpu(int cpu) 10a7b480e7SBorislav Petkov { 11a7b480e7SBorislav Petkov smp_call_function_single(cpu, __wbinvd, NULL, 1); 12a7b480e7SBorislav Petkov } 13a7b480e7SBorislav Petkov EXPORT_SYMBOL(wbinvd_on_cpu); 14a7b480e7SBorislav Petkov 15a7b480e7SBorislav Petkov int wbinvd_on_all_cpus(void) 16a7b480e7SBorislav Petkov { 17a7b480e7SBorislav Petkov return on_each_cpu(__wbinvd, NULL, 1); 18a7b480e7SBorislav Petkov } 19a7b480e7SBorislav Petkov EXPORT_SYMBOL(wbinvd_on_all_cpus); 20