diff options
author | kevlo <kevlo@FreeBSD.org> | 2013-06-14 05:36:47 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2013-06-14 05:36:47 +0000 |
commit | a80685b9ce0c47ca222eb9c637898898cffa7752 (patch) | |
tree | b2a11f5b9d79d6ff49428c1332757926c07d39f9 /sys/dev/rt | |
parent | 1f0a53a66f87e788b7ce601706e85f6b04724261 (diff) | |
download | FreeBSD-src-a80685b9ce0c47ca222eb9c637898898cffa7752.zip FreeBSD-src-a80685b9ce0c47ca222eb9c637898898cffa7752.tar.gz |
- Use the consistenly PHY-specific reset routine PHY_RESET() rather than
generic mii_phy_reset().
- Return the result of mii_mediachg() rather than blindly returning 0.
- on smsc(4), driver lock should be held to get current
mii_media_active/mii_media_status value.
Reviewed by: yongari
Diffstat (limited to 'sys/dev/rt')
-rw-r--r-- | sys/dev/rt/if_rt.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/dev/rt/if_rt.c b/sys/dev/rt/if_rt.c index ebbbba5..ce2b7a9 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); |