diff options
author | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-09-29 19:28:31 +0000 |
---|---|---|
committer | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-09-29 19:28:31 +0000 |
commit | cd62a9cb38a58597b7d6094f7104d8271c1bb0dd (patch) | |
tree | 059d83b39e680ff22f9e9aee5eb54410ca5ecbe3 /sys/pci/if_pcn.c | |
parent | 896bddb5464dcb1b3228f2f06e499b26c39e14d7 (diff) | |
download | src-cd62a9cb38a58597b7d6094f7104d8271c1bb0dd.tar.gz src-cd62a9cb38a58597b7d6094f7104d8271c1bb0dd.zip |
Do not call mii_pollstat() from within device tick routines; the status
information is updated by mii_tick().
Pointed out by: wpaul (a while back)
Notes
Notes:
svn path=/head/; revision=84147
Diffstat (limited to 'sys/pci/if_pcn.c')
-rw-r--r-- | sys/pci/if_pcn.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/pci/if_pcn.c b/sys/pci/if_pcn.c index 1dd388b4eb9d..580f5e99b5a6 100644 --- a/sys/pci/if_pcn.c +++ b/sys/pci/if_pcn.c @@ -927,16 +927,16 @@ static void pcn_tick(xsc) mii = device_get_softc(sc->pcn_miibus); mii_tick(mii); + /* link just died */ if (sc->pcn_link & !(mii->mii_media_status & IFM_ACTIVE)) sc->pcn_link = 0; - if (!sc->pcn_link) { - mii_pollstat(mii); - if (mii->mii_media_status & IFM_ACTIVE && - IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) - sc->pcn_link++; - if (ifp->if_snd.ifq_head != NULL) - pcn_start(ifp); + /* link just came up, restart */ + if (!sc->pcn_link && mii->mii_media_status & IFM_ACTIVE && + IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) { + sc->pcn_link++; + if (ifp->if_snd.ifq_head != NULL) + pcn_start(ifp); } sc->pcn_stat_ch = timeout(pcn_tick, sc, hz); |