summaryrefslogtreecommitdiffstats
path: root/drivers/net/benet
diff options
context:
space:
mode:
authorAjit Khaparde <ajitk@serverengines.com>2010-07-29 08:17:17 +0200
committerDavid S. Miller <davem@davemloft.net>2010-07-31 08:59:06 +0200
commit48e9989e033966fd738d062ea9730fe10085fdd1 (patch)
tree03aac4b4c8ac5f17ac714e777523f23bab7578a1 /drivers/net/benet
parentbe2net: add code to dump registers for debug (diff)
downloadlinux-48e9989e033966fd738d062ea9730fe10085fdd1.tar.xz
linux-48e9989e033966fd738d062ea9730fe10085fdd1.zip
be2net: change to show correct physical link status
link status is wrongly displayed under certain circumstances. This change fixes it. Signed-off-by: Somnath K <somnathk@serverengines.com> Signed-off-by: Ajit Khaparde <ajitk@serverengines.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/benet')
-rw-r--r--drivers/net/benet/be_ethtool.c3
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)
int status;
u16 intf_type;
- if (adapter->link_speed < 0) {
+ if ((adapter->link_speed < 0) || (!(netdev->flags & IFF_UP))) {
status = be_cmd_link_status_query(adapter, &link_up,
&mac_speed, &link_speed);
+ be_link_status_update(adapter, link_up);
/* link_speed is in units of 10 Mbps */
if (link_speed) {
ecmd->speed = link_speed*10;