Index: if_tun.c =================================================================== RCS file: /cvs/src/sys/net/if_tun.c,v retrieving revision 1.212 diff -u -p -r1.212 if_tun.c --- if_tun.c 25 Jan 2020 06:31:32 -0000 1.212 +++ if_tun.c 25 Jan 2020 10:30:47 -0000 @@ -300,6 +300,9 @@ tun_clone_destroy(struct ifnet *ifp) KASSERT(sc->sc_dev == 0); } tun_wakeup(sc); + + SMR_LIST_REMOVE_LOCKED(sc, sc_entry); + smr_barrier(); refcnt_finalize(&sc->sc_refs, "tundtor"); s = splhigh(); @@ -315,8 +318,6 @@ tun_clone_destroy(struct ifnet *ifp) if_detach(ifp); sigio_free(&sc->sc_sigio); - SMR_LIST_REMOVE_LOCKED(sc, sc_entry); - smr_barrier(); free(sc, M_DEVBUF, sizeof *sc); return (0); }