X-Git-Url: http://bbs.cooldavid.org/git/?p=jme.git;a=blobdiff_plain;f=jme.c;h=0ea0da32d7d8fd00cb0c39a54f6d11f3913f758d;hp=e04f180965aeebb548ee7d7ce38cc2d9655d1ca8;hb=f79361a69c5dc9aee56e3ba808428fd5f013666e;hpb=48db98f75199ce17d6c64c165a3d043ebc4936f2 diff --git a/jme.c b/jme.c index e04f180..0ea0da3 100644 --- a/jme.c +++ b/jme.c @@ -2394,6 +2394,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)) @@ -2403,10 +2407,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; }