Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/x86/lib/cache-smp.c
26424 views
1
// SPDX-License-Identifier: GPL-2.0
2
#include <asm/paravirt.h>
3
#include <linux/smp.h>
4
#include <linux/export.h>
5
6
static void __wbinvd(void *dummy)
7
{
8
wbinvd();
9
}
10
11
void wbinvd_on_cpu(int cpu)
12
{
13
smp_call_function_single(cpu, __wbinvd, NULL, 1);
14
}
15
EXPORT_SYMBOL(wbinvd_on_cpu);
16
17
void wbinvd_on_all_cpus(void)
18
{
19
on_each_cpu(__wbinvd, NULL, 1);
20
}
21
EXPORT_SYMBOL(wbinvd_on_all_cpus);
22
23
void wbinvd_on_cpus_mask(struct cpumask *cpus)
24
{
25
on_each_cpu_mask(cpus, __wbinvd, NULL, 1);
26
}
27
EXPORT_SYMBOL_GPL(wbinvd_on_cpus_mask);
28
29
static void __wbnoinvd(void *dummy)
30
{
31
wbnoinvd();
32
}
33
34
void wbnoinvd_on_all_cpus(void)
35
{
36
on_each_cpu(__wbnoinvd, NULL, 1);
37
}
38
EXPORT_SYMBOL_GPL(wbnoinvd_on_all_cpus);
39
40
void wbnoinvd_on_cpus_mask(struct cpumask *cpus)
41
{
42
on_each_cpu_mask(cpus, __wbnoinvd, NULL, 1);
43
}
44
EXPORT_SYMBOL_GPL(wbnoinvd_on_cpus_mask);
45
46