X-Git-Url: http://bbs.cooldavid.org/git/?p=jme.git;a=blobdiff_plain;f=jme.c;fp=jme.c;h=e3db53f47c777ad8ccbd59fcee22e3eb694e489d;hp=d7d2140834295e2603c2e4714ea3bd543aea3566;hb=e6b41b51de71cc99799efbe39176db77d200a580;hpb=e58b908e8d69e95b720b5f5d536eed761b88ee1c diff --git a/jme.c b/jme.c index d7d2140..e3db53f 100644 --- a/jme.c +++ b/jme.c @@ -2493,6 +2493,10 @@ jme_set_settings(struct net_device *netdev, if (ecmd->speed == SPEED_1000 && ecmd->autoneg != AUTONEG_ENABLE) return -EINVAL; + /* + * Check If user changed duplex only while force_media. + * Hardware would not generate link change interrupt. + */ if (jme->mii_if.force_media && ecmd->autoneg != AUTONEG_ENABLE && (jme->mii_if.full_duplex != ecmd->duplex)) @@ -2502,10 +2506,9 @@ jme_set_settings(struct net_device *netdev, rc = mii_ethtool_sset(&(jme->mii_if), ecmd); spin_unlock_bh(&jme->phy_lock); - if (!rc && fdc) - jme_reset_link(jme); - if (!rc) { + if (fdc) + jme_reset_link(jme); set_bit(JME_FLAG_SSET, &jme->flags); jme->old_ecmd = *ecmd; }