diff options
Diffstat (limited to 'sys/dev/ic/xl.c')
-rw-r--r-- | sys/dev/ic/xl.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/dev/ic/xl.c b/sys/dev/ic/xl.c index cd1ae55e6b6..73d5f7ca63b 100644 --- a/sys/dev/ic/xl.c +++ b/sys/dev/ic/xl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xl.c,v 1.86 2009/06/02 07:55:10 deraadt Exp $ */ +/* $OpenBSD: xl.c,v 1.87 2009/10/15 17:54:54 deraadt Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -2407,6 +2407,9 @@ xl_stop(struct xl_softc *sc) { struct ifnet *ifp; + /* Stop the stats updater. */ + timeout_del(&sc->xl_stsup_tmo); + ifp = &sc->sc_arpcom.ac_if; ifp->if_timer = 0; @@ -2433,9 +2436,6 @@ xl_stop(struct xl_softc *sc) if (sc->intr_ack) (*sc->intr_ack)(sc); - /* Stop the stats updater. */ - timeout_del(&sc->xl_stsup_tmo); - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); xl_freetxrx(sc); @@ -2737,14 +2737,14 @@ xl_detach(struct xl_softc *sc) /* Delete all remaining media. */ ifmedia_delete_instance(&sc->sc_mii.mii_media, IFM_INST_ANY); - ether_ifdetach(ifp); - if_detach(ifp); - if (sc->sc_sdhook != NULL) shutdownhook_disestablish(sc->sc_sdhook); if (sc->sc_pwrhook != NULL) powerhook_disestablish(sc->sc_pwrhook); + ether_ifdetach(ifp); + if_detach(ifp); + return (0); } |