diff options
-rw-r--r-- | drivers/net/jme.c | 9 |
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 | } |