diff options
Diffstat (limited to 'drivers/net/benet')
-rw-r--r-- | drivers/net/benet/be_ethtool.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/benet/be_ethtool.c b/drivers/net/benet/be_ethtool.c index c0ade242895d..cd16243c7c36 100644 --- a/drivers/net/benet/be_ethtool.c +++ b/drivers/net/benet/be_ethtool.c | |||
@@ -322,10 +322,11 @@ static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) | |||
322 | int status; | 322 | int status; |
323 | u16 intf_type; | 323 | u16 intf_type; |
324 | 324 | ||
325 | if (adapter->link_speed < 0) { | 325 | if ((adapter->link_speed < 0) || (!(netdev->flags & IFF_UP))) { |
326 | status = be_cmd_link_status_query(adapter, &link_up, | 326 | status = be_cmd_link_status_query(adapter, &link_up, |
327 | &mac_speed, &link_speed); | 327 | &mac_speed, &link_speed); |
328 | 328 | ||
329 | be_link_status_update(adapter, link_up); | ||
329 | /* link_speed is in units of 10 Mbps */ | 330 | /* link_speed is in units of 10 Mbps */ |
330 | if (link_speed) { | 331 | if (link_speed) { |
331 | ecmd->speed = link_speed*10; | 332 | ecmd->speed = link_speed*10; |