diff options
| author | riastradh <riastradh@NetBSD.org> | 2022-04-09 23:38:31 +0000 |
|---|---|---|
| committer | riastradh <riastradh@NetBSD.org> | 2022-04-09 23:38:31 +0000 |
| commit | 1e11a48f28e95996681facbeddec6f993a79e81f (patch) | |
| tree | 85fcb5573846ef14a6a7336b15db7e84bb502354 /sys/dev/hyperv | |
| parent | 65ce62ef381f3078b9c1af4683e209dd4f696d4a (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.c | 8 |
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); } |
