⬢ DragonFlyBSD Kernel Audit
DF-5264 / fix.diff
← back to finding ↓ download raw
--- a/sys/bus/u4b/wlan/if_mtw.c
+++ b/sys/bus/u4b/wlan/if_mtw.c
@@ -4646,6 +4646,11 @@
 
 	mtw_drain_mbufq(sc);
 
+	/* free TX lists so queued mbufs/node refs are not orphaned by the
+	 * next mtw_setup_tx_list() (mtw_init_locked, if_mtw.c:4466) */
+	for (i = 0; i < MTW_EP_QUEUES; i++)
+		mtw_unsetup_tx_list(sc, &sc->sc_epq[i]);
+
 	if (sc->rx_m != NULL) {
 		m_free(sc->rx_m);
 		sc->rx_m = NULL;