aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fcoe
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/fcoe')
-rw-r--r--drivers/scsi/fcoe/fcoe.c11
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:
1952int fcoe_link_speed_update(struct fc_lport *lport) 1952int 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;