diff --git a/sys/dev/rt/if_rt.c b/sys/dev/rt/if_rt.c index ebbbba5e9d5..ce2b7a9b022 100644 --- a/sys/dev/rt/if_rt.c +++ b/sys/dev/rt/if_rt.c @@ -475,20 +475,16 @@ rt_ifmedia_upd(struct ifnet *ifp) struct rt_softc *sc; #ifdef IF_RT_PHY_SUPPORT struct mii_data *mii; + struct mii_softc *miisc; int error = 0; sc = ifp->if_softc; RT_SOFTC_LOCK(sc); mii = device_get_softc(sc->rt_miibus); - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } - if (mii) - error = mii_mediachg(mii); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); + error = mii_mediachg(mii); RT_SOFTC_UNLOCK(sc); return (error); diff --git a/sys/dev/usb/net/if_aue.c b/sys/dev/usb/net/if_aue.c index 33ed2361f43..1681a2a38b4 100644 --- a/sys/dev/usb/net/if_aue.c +++ b/sys/dev/usb/net/if_aue.c @@ -1008,14 +1008,15 @@ aue_ifmedia_upd(struct ifnet *ifp) struct aue_softc *sc = ifp->if_softc; struct mii_data *mii = GET_MII(sc); struct mii_softc *miisc; + int error; AUE_LOCK_ASSERT(sc, MA_OWNED); sc->sc_flags &= ~AUE_FLAG_LINK; LIST_FOREACH(miisc, &mii->mii_phys, mii_list) PHY_RESET(miisc); - mii_mediachg(mii); - return (0); + error = mii_mediachg(mii); + return (error); } /* diff --git a/sys/dev/usb/net/if_mos.c b/sys/dev/usb/net/if_mos.c index 00b6c9267c4..050bf385347 100644 --- a/sys/dev/usb/net/if_mos.c +++ b/sys/dev/usb/net/if_mos.c @@ -526,16 +526,15 @@ mos_ifmedia_upd(struct ifnet *ifp) struct mos_softc *sc = ifp->if_softc; struct mii_data *mii = GET_MII(sc); struct mii_softc *miisc; + int error; MOS_LOCK_ASSERT(sc, MA_OWNED); sc->mos_link = 0; - if (mii->mii_instance) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } - mii_mediachg(mii); - return (0); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); + error = mii_mediachg(mii); + return (error); } /* diff --git a/sys/dev/usb/net/if_rue.c b/sys/dev/usb/net/if_rue.c index a08d8510a5f..17f82b09f3d 100644 --- a/sys/dev/usb/net/if_rue.c +++ b/sys/dev/usb/net/if_rue.c @@ -866,14 +866,15 @@ rue_ifmedia_upd(struct ifnet *ifp) struct rue_softc *sc = ifp->if_softc; struct mii_data *mii = GET_MII(sc); struct mii_softc *miisc; + int error; RUE_LOCK_ASSERT(sc, MA_OWNED); sc->sc_flags &= ~RUE_FLAG_LINK; LIST_FOREACH(miisc, &mii->mii_phys, mii_list) PHY_RESET(miisc); - mii_mediachg(mii); - return (0); + error = mii_mediachg(mii); + return (error); } /* diff --git a/sys/dev/usb/net/if_smsc.c b/sys/dev/usb/net/if_smsc.c index 03033cd2771..93762cf417b 100644 --- a/sys/dev/usb/net/if_smsc.c +++ b/sys/dev/usb/net/if_smsc.c @@ -606,16 +606,13 @@ smsc_ifmedia_upd(struct ifnet *ifp) { struct smsc_softc *sc = ifp->if_softc; struct mii_data *mii = uether_getmii(&sc->sc_ue); + struct mii_softc *miisc; int err; SMSC_LOCK_ASSERT(sc, MA_OWNED); - if (mii->mii_instance) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); err = mii_mediachg(mii); return (err); } @@ -638,13 +635,10 @@ smsc_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) struct mii_data *mii = uether_getmii(&sc->sc_ue); SMSC_LOCK(sc); - mii_pollstat(mii); - - SMSC_UNLOCK(sc); - ifmr->ifm_active = mii->mii_media_active; ifmr->ifm_status = mii->mii_media_status; + SMSC_UNLOCK(sc); } /** diff --git a/sys/dev/usb/net/if_udav.c b/sys/dev/usb/net/if_udav.c index ff57e25f1f7..2e7c2716395 100644 --- a/sys/dev/usb/net/if_udav.c +++ b/sys/dev/usb/net/if_udav.c @@ -750,14 +750,15 @@ udav_ifmedia_upd(struct ifnet *ifp) struct udav_softc *sc = ifp->if_softc; struct mii_data *mii = GET_MII(sc); struct mii_softc *miisc; + int error; UDAV_LOCK_ASSERT(sc, MA_OWNED); sc->sc_flags &= ~UDAV_FLAG_LINK; LIST_FOREACH(miisc, &mii->mii_phys, mii_list) PHY_RESET(miisc); - mii_mediachg(mii); - return (0); + error = mii_mediachg(mii); + return (error); } static void