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

Commit 008eb736 authored by David Decotigny's avatar David Decotigny Committed by David S. Miller
Browse files

net: fcoe: use __ethtool_get_ksettings

parent 0ab6b544
Loading
Loading
Loading
Loading
+20 −16
Original line number Diff line number Diff line
@@ -93,36 +93,40 @@ static struct notifier_block libfcoe_notifier = {
int fcoe_link_speed_update(struct fc_lport *lport)
{
	struct net_device *netdev = fcoe_get_netdev(lport);
	struct ethtool_cmd ecmd;
	struct ethtool_link_ksettings ecmd;

	if (!__ethtool_get_settings(netdev, &ecmd)) {
	if (!__ethtool_get_link_ksettings(netdev, &ecmd)) {
		lport->link_supported_speeds &= ~(FC_PORTSPEED_1GBIT  |
		                                  FC_PORTSPEED_10GBIT |
		                                  FC_PORTSPEED_20GBIT |
		                                  FC_PORTSPEED_40GBIT);

		if (ecmd.supported & (SUPPORTED_1000baseT_Half |
		if (ecmd.link_modes.supported[0] & (
			    SUPPORTED_1000baseT_Half |
			    SUPPORTED_1000baseT_Full |
			    SUPPORTED_1000baseKX_Full))
			lport->link_supported_speeds |= FC_PORTSPEED_1GBIT;

		if (ecmd.supported & (SUPPORTED_10000baseT_Full   |
		if (ecmd.link_modes.supported[0] & (
			    SUPPORTED_10000baseT_Full   |
			    SUPPORTED_10000baseKX4_Full |
			    SUPPORTED_10000baseKR_Full  |
			    SUPPORTED_10000baseR_FEC))
			lport->link_supported_speeds |= FC_PORTSPEED_10GBIT;

		if (ecmd.supported & (SUPPORTED_20000baseMLD2_Full |
		if (ecmd.link_modes.supported[0] & (
			    SUPPORTED_20000baseMLD2_Full |
			    SUPPORTED_20000baseKR2_Full))
			lport->link_supported_speeds |= FC_PORTSPEED_20GBIT;

		if (ecmd.supported & (SUPPORTED_40000baseKR4_Full |
		if (ecmd.link_modes.supported[0] & (
			    SUPPORTED_40000baseKR4_Full |
			    SUPPORTED_40000baseCR4_Full |
			    SUPPORTED_40000baseSR4_Full |
			    SUPPORTED_40000baseLR4_Full))
			lport->link_supported_speeds |= FC_PORTSPEED_40GBIT;

		switch (ethtool_cmd_speed(&ecmd)) {
		switch (ecmd.base.speed) {
		case SPEED_1000:
			lport->link_speed = FC_PORTSPEED_1GBIT;
			break;