diff options
author | 2017-01-31 12:17:20 +0000 | |
---|---|---|
committer | 2017-01-31 12:17:20 +0000 | |
commit | a4d4bfc49ca8a91d1a3caa8295c97eb44a14beba (patch) | |
tree | e633aa0617b5e098eb66af8bcaff6228832048ea /sys/dev/pv/xen.c | |
parent | Remove the inifioctl hack, checking for an unheld NET_LOCK() in (diff) | |
download | wireguard-openbsd-a4d4bfc49ca8a91d1a3caa8295c97eb44a14beba.tar.xz wireguard-openbsd-a4d4bfc49ca8a91d1a3caa8295c97eb44a14beba.zip |
Issue a pause instruction in the busy-wait loop on SP kernels as well
Diffstat (limited to 'sys/dev/pv/xen.c')
-rw-r--r-- | sys/dev/pv/xen.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/pv/xen.c b/sys/dev/pv/xen.c index 7721e2a37d9..e4036af176b 100644 --- a/sys/dev/pv/xen.c +++ b/sys/dev/pv/xen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xen.c,v 1.72 2017/01/20 16:57:38 mikeb Exp $ */ +/* $OpenBSD: xen.c,v 1.73 2017/01/31 12:17:20 mikeb Exp $ */ /* * Copyright (c) 2015 Mike Belopuhov @@ -1098,7 +1098,9 @@ xen_grant_table_remove(struct xen_softc *sc, grant_ref_t ref) ge->ge_start, ge->ge_table[ref].domid); return; } - CPU_BUSY_CYCLE(); +#if (defined(__amd64__) || defined(__i386__)) + __asm volatile("pause": : : "memory"); +#endif } ge->ge_table[ref].frame = 0xffffffff; } |