From 8982969f056c01c64354006af6cb54e3036e4280 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Tue, 24 May 2016 07:07:11 +0000 Subject: [PATCH] hyperv/vmbus: Free message taskqueue during interrupt teardown MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6506 --- sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c b/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c index 3102abec15b0..cd5cf74e1ebb 100644 --- a/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c +++ b/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c @@ -431,6 +431,12 @@ vmbus_intr_teardown(struct vmbus_softc *sc) taskqueue_free(hv_vmbus_g_context.hv_event_queue[cpu]); hv_vmbus_g_context.hv_event_queue[cpu] = NULL; } + if (hv_vmbus_g_context.hv_msg_tq[cpu] != NULL) { + taskqueue_drain(hv_vmbus_g_context.hv_msg_tq[cpu], + &hv_vmbus_g_context.hv_msg_task[cpu]); + taskqueue_free(hv_vmbus_g_context.hv_msg_tq[cpu]); + hv_vmbus_g_context.hv_msg_tq[cpu] = NULL; + } } if (sc->vmbus_idtvec >= 0) { lapic_ipi_free(sc->vmbus_idtvec);