summaryrefslogtreecommitdiffstats
path: root/sys/dev/pv/xen.c
diff options
context:
space:
mode:
authormikeb <mikeb@openbsd.org>2016-08-01 14:37:39 +0000
committermikeb <mikeb@openbsd.org>2016-08-01 14:37:39 +0000
commiteb509d4730beb25f51b15c43007d2cf151a8b920 (patch)
tree513fb314411721f98b37fb0bac13997d13f61901 /sys/dev/pv/xen.c
parentImplement an FDT-aware interrupt establish API. This means the drivers (diff)
downloadwireguard-openbsd-eb509d4730beb25f51b15c43007d2cf151a8b920.tar.xz
wireguard-openbsd-eb509d4730beb25f51b15c43007d2cf151a8b920.zip
Don't forget to destroy the taskqueue on interrupt disestablish
Diffstat (limited to 'sys/dev/pv/xen.c')
-rw-r--r--sys/dev/pv/xen.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pv/xen.c b/sys/dev/pv/xen.c
index d534be964a4..c12328cd0d1 100644
--- a/sys/dev/pv/xen.c
+++ b/sys/dev/pv/xen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xen.c,v 1.57 2016/07/29 21:27:43 mikeb Exp $ */
+/* $OpenBSD: xen.c,v 1.58 2016/08/01 14:37:39 mikeb Exp $ */
/*
* Copyright (c) 2015 Mike Belopuhov
@@ -784,8 +784,11 @@ xen_intr_disestablish(xen_intr_handle_t xih)
evcount_detach(&xi->xi_evcnt);
+ /* XXX not MP safe */
SLIST_REMOVE(&sc->sc_intrs, xi, xen_intsrc, xi_entry);
+ taskq_destroy(xi->xi_taskq);
+
setbit((char *)&sc->sc_ipg->evtchn_mask[0], xi->xi_port);
clrbit((char *)&sc->sc_ipg->evtchn_pending[0], xi->xi_port);
virtio_membar_sync();