ixgbe: add check for supported modes
When setting advertised speed/duplex with ethtool. Also cleaned up the comment since we also support 100/F. Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
53f096de3a
commit
abcc80d26c
@ -324,12 +324,16 @@ static int ixgbe_set_settings(struct net_device *netdev,
|
|||||||
|
|
||||||
if ((hw->phy.media_type == ixgbe_media_type_copper) ||
|
if ((hw->phy.media_type == ixgbe_media_type_copper) ||
|
||||||
(hw->phy.multispeed_fiber)) {
|
(hw->phy.multispeed_fiber)) {
|
||||||
/* 10000/copper and 1000/copper must autoneg
|
/*
|
||||||
* this function does not support any duplex forcing, but can
|
* this function does not support duplex forcing, but can
|
||||||
* limit the advertising of the adapter to only 10000 or 1000 */
|
* limit the advertising of the adapter to the specified speed
|
||||||
|
*/
|
||||||
if (ecmd->autoneg == AUTONEG_DISABLE)
|
if (ecmd->autoneg == AUTONEG_DISABLE)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (ecmd->advertising & ~ecmd->supported)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
old = hw->phy.autoneg_advertised;
|
old = hw->phy.autoneg_advertised;
|
||||||
advertised = 0;
|
advertised = 0;
|
||||||
if (ecmd->advertising & ADVERTISED_10000baseT_Full)
|
if (ecmd->advertising & ADVERTISED_10000baseT_Full)
|
||||||
|
Loading…
Reference in New Issue
Block a user