aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2011-01-20 01:58:07 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-02-11 11:42:15 -0500
commit5962bc21ceaaba81e04fa1bb5671c65251805d3e (patch)
treeead360a95ba1767bd311957b50bd4f5bc45725b7 /drivers/net/e1000e
parent5c1bda0aa32e4614c32a45ce5662ed6914bae38a (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.c11
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,
1963static int e1000_nway_reset(struct net_device *netdev) 1963static 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