diff options
author | 2016-01-08 05:26:25 +0000 | |
---|---|---|
committer | 2016-01-08 05:26:25 +0000 | |
commit | 75c26c4d33b84f4ac0e4d910e64faac9fa467da6 (patch) | |
tree | 06c04fc4d9b3d3ab00bd344a5010739bbbfa5958 /sys | |
parent | Simplify the mparse_open() interface. (diff) | |
download | wireguard-openbsd-75c26c4d33b84f4ac0e4d910e64faac9fa467da6.tar.xz wireguard-openbsd-75c26c4d33b84f4ac0e4d910e64faac9fa467da6.zip |
Make sure the new rendezvous state is visible to other CPUs before
sending IPIs. Without this, a rendezvous can fail if write buffering is
enabled on octeon.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/mips64/mips64/ipifuncs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/mips64/mips64/ipifuncs.c b/sys/arch/mips64/mips64/ipifuncs.c index ddae5f3adbc..0a1d28281dc 100644 --- a/sys/arch/mips64/mips64/ipifuncs.c +++ b/sys/arch/mips64/mips64/ipifuncs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ipifuncs.c,v 1.11 2015/07/27 16:33:40 visa Exp $ */ +/* $OpenBSD: ipifuncs.c,v 1.12 2016/01/08 05:26:25 visa Exp $ */ /* $NetBSD: ipifuncs.c,v 1.40 2008/04/28 20:23:10 martin Exp $ */ /*- @@ -209,6 +209,7 @@ smp_rendezvous_cpus(unsigned long map, smp_rv_func_arg = arg; smp_rv_waiters[0] = 0; smp_rv_waiters[1] = 0; + mips_sync(); /* signal other processors, which will enter the IPI with interrupts off */ mips64_multicast_ipi(map & ~cpumask, MIPS64_IPI_RENDEZVOUS); |