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

net: fcoe: use __ethtool_get_ksettings

Signed-off-by: default avatarDavid Decotigny <decot@googlers.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ab6b544
...@@ -93,36 +93,40 @@ static struct notifier_block libfcoe_notifier = { ...@@ -93,36 +93,40 @@ static struct notifier_block libfcoe_notifier = {
int fcoe_link_speed_update(struct fc_lport *lport) int fcoe_link_speed_update(struct fc_lport *lport)
{ {
struct net_device *netdev = fcoe_get_netdev(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 | lport->link_supported_speeds &= ~(FC_PORTSPEED_1GBIT |
FC_PORTSPEED_10GBIT | FC_PORTSPEED_10GBIT |
FC_PORTSPEED_20GBIT | FC_PORTSPEED_20GBIT |
FC_PORTSPEED_40GBIT); FC_PORTSPEED_40GBIT);
if (ecmd.supported & (SUPPORTED_1000baseT_Half | if (ecmd.link_modes.supported[0] & (
SUPPORTED_1000baseT_Full | SUPPORTED_1000baseT_Half |
SUPPORTED_1000baseKX_Full)) SUPPORTED_1000baseT_Full |
SUPPORTED_1000baseKX_Full))
lport->link_supported_speeds |= FC_PORTSPEED_1GBIT; lport->link_supported_speeds |= FC_PORTSPEED_1GBIT;
if (ecmd.supported & (SUPPORTED_10000baseT_Full | if (ecmd.link_modes.supported[0] & (
SUPPORTED_10000baseKX4_Full | SUPPORTED_10000baseT_Full |
SUPPORTED_10000baseKR_Full | SUPPORTED_10000baseKX4_Full |
SUPPORTED_10000baseR_FEC)) SUPPORTED_10000baseKR_Full |
SUPPORTED_10000baseR_FEC))
lport->link_supported_speeds |= FC_PORTSPEED_10GBIT; lport->link_supported_speeds |= FC_PORTSPEED_10GBIT;
if (ecmd.supported & (SUPPORTED_20000baseMLD2_Full | if (ecmd.link_modes.supported[0] & (
SUPPORTED_20000baseKR2_Full)) SUPPORTED_20000baseMLD2_Full |
SUPPORTED_20000baseKR2_Full))
lport->link_supported_speeds |= FC_PORTSPEED_20GBIT; lport->link_supported_speeds |= FC_PORTSPEED_20GBIT;
if (ecmd.supported & (SUPPORTED_40000baseKR4_Full | if (ecmd.link_modes.supported[0] & (
SUPPORTED_40000baseCR4_Full | SUPPORTED_40000baseKR4_Full |
SUPPORTED_40000baseSR4_Full | SUPPORTED_40000baseCR4_Full |
SUPPORTED_40000baseLR4_Full)) SUPPORTED_40000baseSR4_Full |
SUPPORTED_40000baseLR4_Full))
lport->link_supported_speeds |= FC_PORTSPEED_40GBIT; lport->link_supported_speeds |= FC_PORTSPEED_40GBIT;
switch (ethtool_cmd_speed(&ecmd)) { switch (ecmd.base.speed) {
case SPEED_1000: case SPEED_1000:
lport->link_speed = FC_PORTSPEED_1GBIT; lport->link_speed = FC_PORTSPEED_1GBIT;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment