summaryrefslogtreecommitdiffstats
path: root/sys/dev/bce
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-07-19 21:38:07 +0000
committeryongari <yongari@FreeBSD.org>2010-07-19 21:38:07 +0000
commit0e81d4d08522fb054cad9e4a3f63e196f0c38e54 (patch)
tree7e41bcd4d50b7a4b99d4b7424beb7026efdcd14d /sys/dev/bce
parent7ded005b160abb3b56680e75ac96c4bd10c710a3 (diff)
downloadFreeBSD-src-0e81d4d08522fb054cad9e4a3f63e196f0c38e54.zip
FreeBSD-src-0e81d4d08522fb054cad9e4a3f63e196f0c38e54.tar.gz
Correctly check the result of media selection. Previously it always
returned success. Reviewed by: davidch
Diffstat (limited to 'sys/dev/bce')
-rw-r--r--sys/dev/bce/if_bce.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/dev/bce/if_bce.c b/sys/dev/bce/if_bce.c
index 412bd15..a881c9e 100644
--- a/sys/dev/bce/if_bce.c
+++ b/sys/dev/bce/if_bce.c
@@ -423,7 +423,7 @@ static void bce_start (struct ifnet *);
static int bce_ioctl (struct ifnet *, u_long, caddr_t);
static void bce_watchdog (struct bce_softc *);
static int bce_ifmedia_upd (struct ifnet *);
-static void bce_ifmedia_upd_locked (struct ifnet *);
+static int bce_ifmedia_upd_locked (struct ifnet *);
static void bce_ifmedia_sts (struct ifnet *, struct ifmediareq *);
static void bce_init_locked (struct bce_softc *);
static void bce_init (void *);
@@ -5789,15 +5789,16 @@ static int
bce_ifmedia_upd(struct ifnet *ifp)
{
struct bce_softc *sc = ifp->if_softc;
+ int error;
DBENTER(BCE_VERBOSE);
BCE_LOCK(sc);
- bce_ifmedia_upd_locked(ifp);
+ error = bce_ifmedia_upd_locked(ifp);
BCE_UNLOCK(sc);
DBEXIT(BCE_VERBOSE);
- return (0);
+ return (error);
}
@@ -5807,14 +5808,16 @@ bce_ifmedia_upd(struct ifnet *ifp)
/* Returns: */
/* Nothing. */
/****************************************************************************/
-static void
+static int
bce_ifmedia_upd_locked(struct ifnet *ifp)
{
struct bce_softc *sc = ifp->if_softc;
struct mii_data *mii;
+ int error;
DBENTER(BCE_VERBOSE_PHY);
+ error = 0;
BCE_LOCK_ASSERT(sc);
mii = device_get_softc(sc->bce_miibus);
@@ -5828,10 +5831,11 @@ bce_ifmedia_upd_locked(struct ifnet *ifp)
LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
mii_phy_reset(miisc);
}
- mii_mediachg(mii);
+ error = mii_mediachg(mii);
}
DBEXIT(BCE_VERBOSE_PHY);
+ return (error);
}
OpenPOWER on IntegriCloud