summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
diff options
context:
space:
mode:
authorJacob Keller2012-10-24 09:26:02 +0200
committerJeff Kirsher2012-11-22 10:39:43 +0100
commitdb2adc2df2c2f4250fead3e8418be2e387a5278f (patch)
tree9b6dbb1a55525bb68eff68a246619f7f578a6fd1 /drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
parentixgbe: remove needless queuing for L4 ptp packets (diff)
downloadkernel-qcow2-linux-db2adc2df2c2f4250fead3e8418be2e387a5278f.tar.gz
kernel-qcow2-linux-db2adc2df2c2f4250fead3e8418be2e387a5278f.tar.xz
kernel-qcow2-linux-db2adc2df2c2f4250fead3e8418be2e387a5278f.zip
ixgbe: ethtool correctly identify autoneg setting
This patch enables ethtool to correctly identify flow control (pause frame) auto negotiation, as well as disallow enabling it when it is not supported. The ixgbe_device_supports_autoneg_fc function is exported and used for this purpose. There is also one minor cleanup of the device_supports_autoneg_fc by removing an unnecessary return statement. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index a545728e100c..326858424345 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -383,6 +383,11 @@ static int ixgbe_set_pauseparam(struct net_device *netdev,
(adapter->flags & IXGBE_FLAG_DCB_ENABLED))
return -EINVAL;
+ /* some devices do not support autoneg of link flow control */
+ if ((pause->autoneg == AUTONEG_ENABLE) &&
+ (ixgbe_device_supports_autoneg_fc(hw) != 0))
+ return -EINVAL;
+
fc.disable_fc_autoneg = (pause->autoneg != AUTONEG_ENABLE);
if ((pause->rx_pause && pause->tx_pause) || pause->autoneg)