aboutsummaryrefslogtreecommitdiff
path: root/sys/pci/if_pcn.c
diff options
context:
space:
mode:
authorJonathan Lemon <jlemon@FreeBSD.org>2001-09-29 19:28:31 +0000
committerJonathan Lemon <jlemon@FreeBSD.org>2001-09-29 19:28:31 +0000
commitcd62a9cb38a58597b7d6094f7104d8271c1bb0dd (patch)
tree059d83b39e680ff22f9e9aee5eb54410ca5ecbe3 /sys/pci/if_pcn.c
parent896bddb5464dcb1b3228f2f06e499b26c39e14d7 (diff)
downloadsrc-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.c14
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);