aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJohn-Mark Gurney <jmg@FreeBSD.org>2006-10-06 20:53:01 +0000
committerJohn-Mark Gurney <jmg@FreeBSD.org>2006-10-06 20:53:01 +0000
commit5aa0cdf46d078acfc59bf68adcdf8b4e4f14a650 (patch)
tree16920f0e43a557bbb74229bf752091c791cb6bda /sys
parent84ee7f6ba29142431ad9614d41485a498fb94e87 (diff)
downloadsrc-5aa0cdf46d078acfc59bf68adcdf8b4e4f14a650.tar.gz
src-5aa0cdf46d078acfc59bf68adcdf8b4e4f14a650.zip
fix fxp so that it will reset the link when you change the speed... This
will fix a problem where you boot w/ the default of autoselect, but then set the speed to 100/full, the switch will keep the autoselect/100/full negotiation... This will continue to work till someone resets the switch or unplugs the cable resulting in the switch failing to autoneg and falling back to 100/half, causing a hard to track down duplex mismatch.. Submitted by: nCircle Network Security, Inc. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=163061
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/fxp/if_fxp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c
index f49cb7ffd1cd..01a50bbe5672 100644
--- a/sys/dev/fxp/if_fxp.c
+++ b/sys/dev/fxp/if_fxp.c
@@ -2192,6 +2192,11 @@ fxp_ifmedia_upd(struct ifnet *ifp)
mii = device_get_softc(sc->miibus);
FXP_LOCK(sc);
+ if (mii->mii_instance) {
+ struct mii_softc *miisc;
+ LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
+ mii_phy_reset(miisc);
+ }
mii_mediachg(mii);
FXP_UNLOCK(sc);
return (0);