From owner-svn-src-all@FreeBSD.ORG Fri Jun 14 05:36:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 70893951; Fri, 14 Jun 2013 05:36:49 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 51ADE11C6; Fri, 14 Jun 2013 05:36:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r5E5an1B077747; Fri, 14 Jun 2013 05:36:49 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r5E5amvN077738; Fri, 14 Jun 2013 05:36:48 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201306140536.r5E5amvN077738@svn.freebsd.org> From: Kevin Lo Date: Fri, 14 Jun 2013 05:36:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r251734 - in head/sys/dev: rt usb/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Jun 2013 05:36:49 -0000 Author: kevlo Date: Fri Jun 14 05:36:47 2013 New Revision: 251734 URL: http://svnweb.freebsd.org/changeset/base/251734 Log: - 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 Modified: head/sys/dev/rt/if_rt.c head/sys/dev/usb/net/if_aue.c head/sys/dev/usb/net/if_mos.c head/sys/dev/usb/net/if_rue.c head/sys/dev/usb/net/if_smsc.c head/sys/dev/usb/net/if_udav.c Modified: head/sys/dev/rt/if_rt.c ============================================================================== --- head/sys/dev/rt/if_rt.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/rt/if_rt.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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); Modified: head/sys/dev/usb/net/if_aue.c ============================================================================== --- head/sys/dev/usb/net/if_aue.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/usb/net/if_aue.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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); } /* Modified: head/sys/dev/usb/net/if_mos.c ============================================================================== --- head/sys/dev/usb/net/if_mos.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/usb/net/if_mos.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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); } /* Modified: head/sys/dev/usb/net/if_rue.c ============================================================================== --- head/sys/dev/usb/net/if_rue.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/usb/net/if_rue.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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); } /* Modified: head/sys/dev/usb/net/if_smsc.c ============================================================================== --- head/sys/dev/usb/net/if_smsc.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/usb/net/if_smsc.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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, stru 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); } /** Modified: head/sys/dev/usb/net/if_udav.c ============================================================================== --- head/sys/dev/usb/net/if_udav.c Fri Jun 14 05:16:51 2013 (r251733) +++ head/sys/dev/usb/net/if_udav.c Fri Jun 14 05:36:47 2013 (r251734) @@ -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