diff options
Diffstat (limited to 'drivers/scsi/fcoe')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index 5d3700dc6f8c..cc23bd9480b2 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c | |||
@@ -1952,7 +1952,7 @@ out_nodev: | |||
1952 | int fcoe_link_speed_update(struct fc_lport *lport) | 1952 | int fcoe_link_speed_update(struct fc_lport *lport) |
1953 | { | 1953 | { |
1954 | struct net_device *netdev = fcoe_netdev(lport); | 1954 | struct net_device *netdev = fcoe_netdev(lport); |
1955 | struct ethtool_cmd ecmd = { ETHTOOL_GSET }; | 1955 | struct ethtool_cmd ecmd; |
1956 | 1956 | ||
1957 | if (!dev_ethtool_get_settings(netdev, &ecmd)) { | 1957 | if (!dev_ethtool_get_settings(netdev, &ecmd)) { |
1958 | lport->link_supported_speeds &= | 1958 | lport->link_supported_speeds &= |
@@ -1963,11 +1963,14 @@ int fcoe_link_speed_update(struct fc_lport *lport) | |||
1963 | if (ecmd.supported & SUPPORTED_10000baseT_Full) | 1963 | if (ecmd.supported & SUPPORTED_10000baseT_Full) |
1964 | lport->link_supported_speeds |= | 1964 | lport->link_supported_speeds |= |
1965 | FC_PORTSPEED_10GBIT; | 1965 | FC_PORTSPEED_10GBIT; |
1966 | if (ecmd.speed == SPEED_1000) | 1966 | switch (ethtool_cmd_speed(&ecmd)) { |
1967 | case SPEED_1000: | ||
1967 | lport->link_speed = FC_PORTSPEED_1GBIT; | 1968 | lport->link_speed = FC_PORTSPEED_1GBIT; |
1968 | if (ecmd.speed == SPEED_10000) | 1969 | break; |
1970 | case SPEED_10000: | ||
1969 | lport->link_speed = FC_PORTSPEED_10GBIT; | 1971 | lport->link_speed = FC_PORTSPEED_10GBIT; |
1970 | 1972 | break; | |
1973 | } | ||
1971 | return 0; | 1974 | return 0; |
1972 | } | 1975 | } |
1973 | return -1; | 1976 | return -1; |