summaryrefslogtreecommitdiff
path: root/sys/dev/hyperv
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2022-04-09 23:38:31 +0000
committerriastradh <riastradh@NetBSD.org>2022-04-09 23:38:31 +0000
commit1e11a48f28e95996681facbeddec6f993a79e81f (patch)
tree85fcb5573846ef14a6a7336b15db7e84bb502354 /sys/dev/hyperv
parent65ce62ef381f3078b9c1af4683e209dd4f696d4a (diff)
sys: Use membar_release/acquire around reference drop.
This just goes through my recent reference count membar audit and changes membar_exit to membar_release and membar_enter to membar_acquire -- this should make everything cheaper on most CPUs without hurting correctness, because membar_acquire is generally cheaper than membar_enter.
Diffstat (limited to 'sys/dev/hyperv')
-rw-r--r--sys/dev/hyperv/vmbus.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/hyperv/vmbus.c b/sys/dev/hyperv/vmbus.c
index 4e47e8dd73b..4eb9213234d 100644
--- a/sys/dev/hyperv/vmbus.c
+++ b/sys/dev/hyperv/vmbus.c
@@ -1,4 +1,4 @@
-/* $NetBSD: vmbus.c,v 1.16 2022/03/12 15:32:31 riastradh Exp $ */
+/* $NetBSD: vmbus.c,v 1.17 2022/04/09 23:38:32 riastradh Exp $ */
/* $OpenBSD: hyperv.c,v 1.43 2017/06/27 13:56:15 mikeb Exp $ */
/*-
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vmbus.c,v 1.16 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vmbus.c,v 1.17 2022/04/09 23:38:32 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1452,10 +1452,10 @@ vmbus_channel_detach(struct vmbus_channel *ch)
KASSERTMSG(ch->ch_refs > 0, "channel%u: invalid refcnt %d",
ch->ch_id, ch->ch_refs);
- membar_exit();
+ membar_release();
refs = atomic_dec_uint_nv(&ch->ch_refs);
if (refs == 0) {
- membar_enter();
+ membar_acquire();
/* Detach the target channel. */
vmbus_devq_enqueue(ch->ch_sc, VMBUS_DEV_TYPE_DETACH, ch);
}