diff --git a/sys/net/if_tap.c b/sys/net/if_tap.c index ad6f781b6e5b..fe53a6acf4fb 100644 --- a/sys/net/if_tap.c +++ b/sys/net/if_tap.c @@ -220,6 +220,7 @@ tap_destroy(struct tap_softc *tp) CURVNET_SET(ifp->if_vnet); destroy_dev(tp->tap_dev); seldrain(&tp->tap_rsel); + knlist_clear(&tp->tap_rsel.si_note, 0); knlist_destroy(&tp->tap_rsel.si_note); ether_ifdetach(ifp); if_free(ifp); diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index f44bc0e5bf3c..f36e7ada3d2d 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -258,6 +258,7 @@ tun_destroy(struct tun_softc *tp) if_free(TUN2IFP(tp)); destroy_dev(dev); seldrain(&tp->tun_rsel); + knlist_clear(&tp->tun_rsel.si_note, 0); knlist_destroy(&tp->tun_rsel.si_note); mtx_destroy(&tp->tun_mtx); cv_destroy(&tp->tun_cv);