Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jun 2013 05:36:48 +0000 (UTC)
From:      Kevin Lo <kevlo@FreeBSD.org>
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
Message-ID:  <201306140536.r5E5amvN077738@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306140536.r5E5amvN077738>