summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2020-11-28 18:40:02 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2020-11-28 18:40:02 +0000
commit4a6e6c6d2e029d6f59e79715cc1b44822ae0c51c (patch)
tree00490e9400103891bdd7741ffdb1914629ac2f10 /sys
parent9ddd1fdf0b6b249613e49950affa46e98ccca049 (diff)
Since our IPI broadcast functions exclude the CPU doing the broadcast, we
need to explicitly call wbinvd() in wbinvd_on_all_cpus(). ok jsg@, deraadt@
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/amd64/amd64/cpu.c3
-rw-r--r--sys/arch/i386/i386/cpu.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/amd64/amd64/cpu.c b/sys/arch/amd64/amd64/cpu.c
index c52b737883d..122d8018551 100644
--- a/sys/arch/amd64/amd64/cpu.c
+++ b/sys/arch/amd64/amd64/cpu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.c,v 1.151 2020/11/24 13:52:40 mpi Exp $ */
+/* $OpenBSD: cpu.c,v 1.152 2020/11/28 18:40:01 kettenis Exp $ */
/* $NetBSD: cpu.c,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */
/*-
@@ -1289,6 +1289,7 @@ int
wbinvd_on_all_cpus(void)
{
x86_broadcast_ipi(X86_IPI_WBINVD);
+ wbinvd();
return 0;
}
#endif
diff --git a/sys/arch/i386/i386/cpu.c b/sys/arch/i386/i386/cpu.c
index 592eeb1862a..6908f5e81c9 100644
--- a/sys/arch/i386/i386/cpu.c
+++ b/sys/arch/i386/i386/cpu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.c,v 1.105 2020/09/13 11:53:16 jsg Exp $ */
+/* $OpenBSD: cpu.c,v 1.106 2020/11/28 18:40:01 kettenis Exp $ */
/* $NetBSD: cpu.c,v 1.1.2.7 2000/06/26 02:04:05 sommerfeld Exp $ */
/*-
@@ -926,6 +926,7 @@ int
wbinvd_on_all_cpus(void)
{
i386_broadcast_ipi(I386_IPI_WBINVD);
+ wbinvd();
return 0;
}
#endif