diff --git a/sys/dev/an/if_an.c b/sys/dev/an/if_an.c index eade4e1d216..9e04e3bce95 100644 --- a/sys/dev/an/if_an.c +++ b/sys/dev/an/if_an.c @@ -826,12 +826,11 @@ an_detach(device_t dev) struct an_softc *sc = device_get_softc(dev); struct ifnet *ifp = sc->an_ifp; - AN_LOCK(sc); if (sc->an_gone) { - AN_UNLOCK(sc); device_printf(dev,"already unloaded\n"); return(0); } + AN_LOCK(sc); an_stop(sc); sc->an_gone = 1; ifmedia_removeall(&sc->an_ifmedia);