net: fcoe: use __ethtool_get_ksettings
Signed-off-by: David Decotigny <decot@googlers.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0ab6b544c1
commit
008eb73693
@ -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_Half |
|
||||||
SUPPORTED_1000baseT_Full |
|
SUPPORTED_1000baseT_Full |
|
||||||
SUPPORTED_1000baseKX_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_10000baseT_Full |
|
||||||
SUPPORTED_10000baseKX4_Full |
|
SUPPORTED_10000baseKX4_Full |
|
||||||
SUPPORTED_10000baseKR_Full |
|
SUPPORTED_10000baseKR_Full |
|
||||||
SUPPORTED_10000baseR_FEC))
|
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_20000baseMLD2_Full |
|
||||||
SUPPORTED_20000baseKR2_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_40000baseKR4_Full |
|
||||||
SUPPORTED_40000baseCR4_Full |
|
SUPPORTED_40000baseCR4_Full |
|
||||||
SUPPORTED_40000baseSR4_Full |
|
SUPPORTED_40000baseSR4_Full |
|
||||||
SUPPORTED_40000baseLR4_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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user