diff options
author | yongari <yongari@FreeBSD.org> | 2012-10-05 03:35:38 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2012-10-05 03:35:38 +0000 |
commit | f70671c7a8c40470149a8ca63ccf135cdf385ad5 (patch) | |
tree | 4130163e445b67e69fbc25fd51e0122c879c1a9b | |
parent | 38242b55020b9f492856f4b2557adaee74914ac2 (diff) | |
download | FreeBSD-src-f70671c7a8c40470149a8ca63ccf135cdf385ad5.zip FreeBSD-src-f70671c7a8c40470149a8ca63ccf135cdf385ad5.tar.gz |
Don't touch EMAC Mode and TX/RX MAC Mode register when driver is
not running.
-rw-r--r-- | sys/dev/bge/if_bge.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c index 4ddcd8c..8cfe51e 100644 --- a/sys/dev/bge/if_bge.c +++ b/sys/dev/bge/if_bge.c @@ -896,7 +896,10 @@ bge_miibus_statchg(device_t dev) { struct bge_softc *sc; struct mii_data *mii; + sc = device_get_softc(dev); + if ((sc->bge_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return; mii = device_get_softc(sc->bge_miibus); if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == @@ -5054,11 +5057,11 @@ bge_init_locked(struct bge_softc *sc) bge_writembx(sc, BGE_MBX_IRQ0_LO, 0); } - bge_ifmedia_upd_locked(ifp); - ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + bge_ifmedia_upd_locked(ifp); + callout_reset(&sc->bge_stat_ch, hz, bge_tick, sc); } |