diff options
author | 2016-08-17 17:18:38 +0000 | |
---|---|---|
committer | 2016-08-17 17:18:38 +0000 | |
commit | 505e9bd0945c239c487fc159a010be5d2d9bc647 (patch) | |
tree | 68045b2feb254aab581ca45ebb0772eaf21ced1d /sys/dev/pv/xen.c | |
parent | sync (diff) | |
download | wireguard-openbsd-505e9bd0945c239c487fc159a010be5d2d9bc647.tar.xz wireguard-openbsd-505e9bd0945c239c487fc159a010be5d2d9bc647.zip |
Replace hand rolled atomic bit operations and use MI ones from DRM
Diffstat (limited to 'sys/dev/pv/xen.c')
-rw-r--r-- | sys/dev/pv/xen.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/sys/dev/pv/xen.c b/sys/dev/pv/xen.c index f03d7459300..6841c05a761 100644 --- a/sys/dev/pv/xen.c +++ b/sys/dev/pv/xen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xen.c,v 1.61 2016/08/05 18:31:21 mikeb Exp $ */ +/* $OpenBSD: xen.c,v 1.62 2016/08/17 17:18:38 mikeb Exp $ */ /* * Copyright (c) 2015 Mike Belopuhov @@ -744,7 +744,7 @@ xen_intr_establish(evtchn_port_t port, xen_intr_handle_t *xih, int domain, SLIST_INSERT_HEAD(&sc->sc_intrs, xi, xi_entry); /* Mask the event port */ - atomic_setbit_ptr(&sc->sc_ipg->evtchn_mask[0], xi->xi_port); + set_bit(xi->xi_port, &sc->sc_ipg->evtchn_mask[0]); #if defined(XEN_DEBUG) && disabled memset(&es, 0, sizeof(es)); @@ -790,8 +790,8 @@ xen_intr_disestablish(xen_intr_handle_t xih) taskq_destroy(xi->xi_taskq); - atomic_setbit_ptr(&sc->sc_ipg->evtchn_mask[0], xi->xi_port); - atomic_clearbit_ptr(&sc->sc_ipg->evtchn_pending[0], xi->xi_port); + set_bit(xi->xi_port, &sc->sc_ipg->evtchn_mask[0]); + clear_bit(xi->xi_port, &sc->sc_ipg->evtchn_pending[0]); if (!xi->xi_noclose) { ec.port = xi->xi_port; @@ -820,8 +820,7 @@ xen_intr_enable(void) printf("%s: unmasking port %u failed\n", sc->sc_dev.dv_xname, xi->xi_port); virtio_membar_sync(); - if (isset((char *)&sc->sc_ipg->evtchn_mask[0], - xi->xi_port)) + if (test_bit(xi->xi_port, &sc->sc_ipg->evtchn_mask[0])) printf("%s: port %u is still masked\n", sc->sc_dev.dv_xname, xi->xi_port); } @@ -837,7 +836,7 @@ xen_intr_mask(xen_intr_handle_t xih) if ((xi = xen_lookup_intsrc(sc, port)) != NULL) { xi->xi_masked = 1; - atomic_setbit_ptr(&sc->sc_ipg->evtchn_mask[0], xi->xi_port); + set_bit(xi->xi_port, &sc->sc_ipg->evtchn_mask[0]); } } @@ -851,7 +850,7 @@ xen_intr_unmask(xen_intr_handle_t xih) if ((xi = xen_lookup_intsrc(sc, port)) != NULL) { xi->xi_masked = 0; - if (!isset((char *)&sc->sc_ipg->evtchn_mask[0], xi->xi_port)) + if (!test_bit(xi->xi_port, &sc->sc_ipg->evtchn_mask[0])) return (0); eu.port = xi->xi_port; return (xen_evtchn_hypercall(sc, EVTCHNOP_unmask, &eu, |