mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-15 09:55:36 +00:00
ixgbe: Fix pause code for ethtool
Signed-off-by: Ayyappan Veeraiyan <ayyappan.veeraiyan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
735441fb1a
commit
9c83b070ed
@ -167,7 +167,7 @@ static void ixgbe_get_pauseparam(struct net_device *netdev,
|
||||
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
||||
struct ixgbe_hw *hw = &adapter->hw;
|
||||
|
||||
pause->autoneg = AUTONEG_DISABLE;
|
||||
pause->autoneg = (hw->fc.type == ixgbe_fc_full ? 1 : 0);
|
||||
|
||||
if (hw->fc.type == ixgbe_fc_rx_pause) {
|
||||
pause->rx_pause = 1;
|
||||
@ -185,10 +185,8 @@ static int ixgbe_set_pauseparam(struct net_device *netdev,
|
||||
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
||||
struct ixgbe_hw *hw = &adapter->hw;
|
||||
|
||||
if (pause->autoneg == AUTONEG_ENABLE)
|
||||
return -EINVAL;
|
||||
|
||||
if (pause->rx_pause && pause->tx_pause)
|
||||
if ((pause->autoneg == AUTONEG_ENABLE) ||
|
||||
(pause->rx_pause && pause->tx_pause))
|
||||
hw->fc.type = ixgbe_fc_full;
|
||||
else if (pause->rx_pause && !pause->tx_pause)
|
||||
hw->fc.type = ixgbe_fc_rx_pause;
|
||||
@ -196,6 +194,8 @@ static int ixgbe_set_pauseparam(struct net_device *netdev,
|
||||
hw->fc.type = ixgbe_fc_tx_pause;
|
||||
else if (!pause->rx_pause && !pause->tx_pause)
|
||||
hw->fc.type = ixgbe_fc_none;
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
hw->fc.original_type = hw->fc.type;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user