Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 476a4b6d authored by Sony Chacko's avatar Sony Chacko Committed by David S. Miller
Browse files

qlcnic: report valid speed and duplex status when link is down



Report valid link statistics when link is down.

Signed-off-by: default avatarSony Chacko <sony.chacko@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 646779f1
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@ qlcnic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
{
	struct qlcnic_adapter *adapter = netdev_priv(dev);
	int check_sfp_module = 0;
	u16 pcifn = adapter->ahw->pci_func;

	/* read which mode */
	if (adapter->ahw->port_type == QLCNIC_GBE) {
@@ -194,10 +193,8 @@ qlcnic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
			goto skip;
		}

		val = QLCRD32(adapter, P3P_LINK_SPEED_REG(pcifn));
		ethtool_cmd_speed_set(ecmd, P3P_LINK_SPEED_MHZ *
				      P3P_LINK_SPEED_VAL(pcifn, val));
		ecmd->duplex = DUPLEX_FULL;
		ethtool_cmd_speed_set(ecmd, SPEED_UNKNOWN);
		ecmd->duplex = DUPLEX_UNKNOWN;
		ecmd->autoneg = AUTONEG_DISABLE;
	} else
		return -EIO;
+7 −1
Original line number Diff line number Diff line
@@ -1369,7 +1369,13 @@ qlcnic_handle_linkevent(struct qlcnic_adapter *adapter,

	adapter->module_type = module;
	adapter->link_autoneg = autoneg;

	if (link_status) {
		adapter->link_speed = link_speed;
	} else {
		adapter->link_speed = SPEED_UNKNOWN;
		adapter->link_duplex = DUPLEX_UNKNOWN;
	}
}

static void