Index: sys/xen/xen_intr.c =================================================================== --- sys/xen/xen_intr.c +++ sys/xen/xen_intr.c @@ -327,7 +327,8 @@ xen_intr_release_isrc(struct xenisrc *isrc) { - mtx_lock(&xen_intr_isrc_lock); + if (mtx_owned() == 0) + mtx_lock(&xen_intr_isrc_lock); evtchn_mask_port(isrc->xi_port); evtchn_clear_port(isrc->xi_port); @@ -1174,7 +1175,6 @@ mtx_unlock(&xen_intr_isrc_lock); return; } - mtx_unlock(&xen_intr_isrc_lock); xen_intr_release_isrc(isrc); }