diff options
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c index 7a58e390e935..ac42cde47888 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | |||
@@ -301,9 +301,13 @@ int qlcnic_82xx_get_settings(struct qlcnic_adapter *adapter, | |||
301 | } | 301 | } |
302 | 302 | ||
303 | if (netif_running(adapter->netdev) && ahw->has_link_events) { | 303 | if (netif_running(adapter->netdev) && ahw->has_link_events) { |
304 | reg = QLCRD32(adapter, P3P_LINK_SPEED_REG(pcifn)); | 304 | if (ahw->linkup) { |
305 | speed = P3P_LINK_SPEED_VAL(pcifn, reg); | 305 | reg = QLCRD32(adapter, |
306 | ahw->link_speed = speed * P3P_LINK_SPEED_MHZ; | 306 | P3P_LINK_SPEED_REG(pcifn)); |
307 | speed = P3P_LINK_SPEED_VAL(pcifn, reg); | ||
308 | ahw->link_speed = speed * P3P_LINK_SPEED_MHZ; | ||
309 | } | ||
310 | |||
307 | ethtool_cmd_speed_set(ecmd, ahw->link_speed); | 311 | ethtool_cmd_speed_set(ecmd, ahw->link_speed); |
308 | ecmd->autoneg = ahw->link_autoneg; | 312 | ecmd->autoneg = ahw->link_autoneg; |
309 | ecmd->duplex = ahw->link_duplex; | 313 | ecmd->duplex = ahw->link_duplex; |