diff options
Diffstat (limited to 'drivers/net/igb/igb_ethtool.c')
| -rw-r--r-- | drivers/net/igb/igb_ethtool.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c index d976733bbcc..6e29634b1fb 100644 --- a/drivers/net/igb/igb_ethtool.c +++ b/drivers/net/igb/igb_ethtool.c @@ -178,11 +178,11 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)  		if ((status & E1000_STATUS_SPEED_1000) ||  		    hw->phy.media_type != e1000_media_type_copper) -			ecmd->speed = SPEED_1000; +			ethtool_cmd_speed_set(ecmd, SPEED_1000);  		else if (status & E1000_STATUS_SPEED_100) -			ecmd->speed = SPEED_100; +			ethtool_cmd_speed_set(ecmd, SPEED_100);  		else -			ecmd->speed = SPEED_10; +			ethtool_cmd_speed_set(ecmd, SPEED_10);  		if ((status & E1000_STATUS_FD) ||  		    hw->phy.media_type != e1000_media_type_copper) @@ -190,7 +190,7 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)  		else  			ecmd->duplex = DUPLEX_HALF;  	} else { -		ecmd->speed = -1; +		ethtool_cmd_speed_set(ecmd, -1);  		ecmd->duplex = -1;  	} @@ -223,7 +223,8 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)  		if (adapter->fc_autoneg)  			hw->fc.requested_mode = e1000_fc_default;  	} else { -		if (igb_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex)) { +		u32 speed = ethtool_cmd_speed(ecmd); +		if (igb_set_spd_dplx(adapter, speed, ecmd->duplex)) {  			clear_bit(__IGB_RESETTING, &adapter->state);  			return -EINVAL;  		}  |