diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2011-01-20 01:58:07 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-02-11 11:42:15 -0500 |
commit | 5962bc21ceaaba81e04fa1bb5671c65251805d3e (patch) | |
tree | ead360a95ba1767bd311957b50bd4f5bc45725b7 /drivers/net/e1000e | |
parent | 5c1bda0aa32e4614c32a45ce5662ed6914bae38a (diff) |
e1000e: return appropriate errors for 'ethtool -r'
...when invoked while interface is not up or when auto-negotiation is
disabled as done by other drivers.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r-- | drivers/net/e1000e/ethtool.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index 0c0859925468..65ef9b5548d8 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c | |||
@@ -1963,8 +1963,15 @@ static int e1000_set_coalesce(struct net_device *netdev, | |||
1963 | static int e1000_nway_reset(struct net_device *netdev) | 1963 | static int e1000_nway_reset(struct net_device *netdev) |
1964 | { | 1964 | { |
1965 | struct e1000_adapter *adapter = netdev_priv(netdev); | 1965 | struct e1000_adapter *adapter = netdev_priv(netdev); |
1966 | if (netif_running(netdev)) | 1966 | |
1967 | e1000e_reinit_locked(adapter); | 1967 | if (!netif_running(netdev)) |
1968 | return -EAGAIN; | ||
1969 | |||
1970 | if (!adapter->hw.mac.autoneg) | ||
1971 | return -EINVAL; | ||
1972 | |||
1973 | e1000e_reinit_locked(adapter); | ||
1974 | |||
1968 | return 0; | 1975 | return 0; |
1969 | } | 1976 | } |
1970 | 1977 | ||