diff options
author | David Decotigny <decot@google.com> | 2011-04-27 14:32:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-29 17:03:00 -0400 |
commit | 25db0338813a8915457636b1f6abe6a28fa73f8d (patch) | |
tree | 29ea39e45de1342beb4e3c58da0cfbc9915b617e /drivers/net/e100.c | |
parent | 8ae6daca85c8bbd6a32c382db5e2a2a989f8bed2 (diff) |
ethtool: Use full 32 bit speed range in ethtool's set_settings
This makes sure the ethtool's set_settings() callback of network
drivers don't ignore the 16 most significant bits when ethtool calls
their set_settings().
All drivers compiled with make allyesconfig on x86_64 have been
updated.
Signed-off-by: David Decotigny <decot@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e100.c')
-rw-r--r-- | drivers/net/e100.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 66ba596a4d37..c810cda3bf1f 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
@@ -1669,6 +1669,7 @@ static void e100_watchdog(unsigned long data) | |||
1669 | { | 1669 | { |
1670 | struct nic *nic = (struct nic *)data; | 1670 | struct nic *nic = (struct nic *)data; |
1671 | struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; | 1671 | struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; |
1672 | u32 speed; | ||
1672 | 1673 | ||
1673 | netif_printk(nic, timer, KERN_DEBUG, nic->netdev, | 1674 | netif_printk(nic, timer, KERN_DEBUG, nic->netdev, |
1674 | "right now = %ld\n", jiffies); | 1675 | "right now = %ld\n", jiffies); |
@@ -1676,10 +1677,11 @@ static void e100_watchdog(unsigned long data) | |||
1676 | /* mii library handles link maintenance tasks */ | 1677 | /* mii library handles link maintenance tasks */ |
1677 | 1678 | ||
1678 | mii_ethtool_gset(&nic->mii, &cmd); | 1679 | mii_ethtool_gset(&nic->mii, &cmd); |
1680 | speed = ethtool_cmd_speed(&cmd); | ||
1679 | 1681 | ||
1680 | if (mii_link_ok(&nic->mii) && !netif_carrier_ok(nic->netdev)) { | 1682 | if (mii_link_ok(&nic->mii) && !netif_carrier_ok(nic->netdev)) { |
1681 | netdev_info(nic->netdev, "NIC Link is Up %u Mbps %s Duplex\n", | 1683 | netdev_info(nic->netdev, "NIC Link is Up %u Mbps %s Duplex\n", |
1682 | cmd.speed == SPEED_100 ? 100 : 10, | 1684 | speed == SPEED_100 ? 100 : 10, |
1683 | cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); | 1685 | cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); |
1684 | } else if (!mii_link_ok(&nic->mii) && netif_carrier_ok(nic->netdev)) { | 1686 | } else if (!mii_link_ok(&nic->mii) && netif_carrier_ok(nic->netdev)) { |
1685 | netdev_info(nic->netdev, "NIC Link is Down\n"); | 1687 | netdev_info(nic->netdev, "NIC Link is Down\n"); |
@@ -1698,13 +1700,13 @@ static void e100_watchdog(unsigned long data) | |||
1698 | spin_unlock_irq(&nic->cmd_lock); | 1700 | spin_unlock_irq(&nic->cmd_lock); |
1699 | 1701 | ||
1700 | e100_update_stats(nic); | 1702 | e100_update_stats(nic); |
1701 | e100_adjust_adaptive_ifs(nic, cmd.speed, cmd.duplex); | 1703 | e100_adjust_adaptive_ifs(nic, speed, cmd.duplex); |
1702 | 1704 | ||
1703 | if (nic->mac <= mac_82557_D100_C) | 1705 | if (nic->mac <= mac_82557_D100_C) |
1704 | /* Issue a multicast command to workaround a 557 lock up */ | 1706 | /* Issue a multicast command to workaround a 557 lock up */ |
1705 | e100_set_multicast_list(nic->netdev); | 1707 | e100_set_multicast_list(nic->netdev); |
1706 | 1708 | ||
1707 | if (nic->flags & ich && cmd.speed==SPEED_10 && cmd.duplex==DUPLEX_HALF) | 1709 | if (nic->flags & ich && speed == SPEED_10 && cmd.duplex == DUPLEX_HALF) |
1708 | /* Need SW workaround for ICH[x] 10Mbps/half duplex Tx hang. */ | 1710 | /* Need SW workaround for ICH[x] 10Mbps/half duplex Tx hang. */ |
1709 | nic->flags |= ich_10h_workaround; | 1711 | nic->flags |= ich_10h_workaround; |
1710 | else | 1712 | else |