aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/jme.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index e04f180965ae..0ea0da32d7d8 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -2394,6 +2394,10 @@ jme_set_settings(struct net_device *netdev,
2394 if (ecmd->speed == SPEED_1000 && ecmd->autoneg != AUTONEG_ENABLE) 2394 if (ecmd->speed == SPEED_1000 && ecmd->autoneg != AUTONEG_ENABLE)
2395 return -EINVAL; 2395 return -EINVAL;
2396 2396
2397 /*
2398 * Check If user changed duplex only while force_media.
2399 * Hardware would not generate link change interrupt.
2400 */
2397 if (jme->mii_if.force_media && 2401 if (jme->mii_if.force_media &&
2398 ecmd->autoneg != AUTONEG_ENABLE && 2402 ecmd->autoneg != AUTONEG_ENABLE &&
2399 (jme->mii_if.full_duplex != ecmd->duplex)) 2403 (jme->mii_if.full_duplex != ecmd->duplex))
@@ -2403,10 +2407,9 @@ jme_set_settings(struct net_device *netdev,
2403 rc = mii_ethtool_sset(&(jme->mii_if), ecmd); 2407 rc = mii_ethtool_sset(&(jme->mii_if), ecmd);
2404 spin_unlock_bh(&jme->phy_lock); 2408 spin_unlock_bh(&jme->phy_lock);
2405 2409
2406 if (!rc && fdc)
2407 jme_reset_link(jme);
2408
2409 if (!rc) { 2410 if (!rc) {
2411 if (fdc)
2412 jme_reset_link(jme);
2410 set_bit(JME_FLAG_SSET, &jme->flags); 2413 set_bit(JME_FLAG_SSET, &jme->flags);
2411 jme->old_ecmd = *ecmd; 2414 jme->old_ecmd = *ecmd;
2412 } 2415 }