ixgbe: cleanup ethtool autoneg input
authorDon Skidmore <donald.c.skidmore@intel.com>
Tue, 27 Apr 2010 11:31:06 +0000 (11:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Apr 2010 21:35:56 +0000 (14:35 -0700)
The way we were setting autoneg via ethtool was inconstant with that
of our other drivers.  It will change the following:

If autoneg is off:
>ethtool -a eth0
Pause parameters for eth0:

Autonegotiate:  off
RX:             off
TX:             off

Before:
>ethtool -A eth0 autoneg on
>ethtool -a eth0
Pause parameters for eth0:

Autonegotiate:  off
RX:             off
TX:             off

Now:
>ethtool -A eth0 autoneg on
>ethtool -a eth0
Pause parameters for eth0:

Autonegotiate:  on
RX:             on
TX:             on

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_ethtool.c

index 5f8c6ab7a98ab2581aa26db50d21554e7a78a909..dfbfe3520048ea9131775d0e7c283572f3b77b01 100644 (file)
@@ -365,7 +365,7 @@ static int ixgbe_set_pauseparam(struct net_device *netdev,
        else
                fc.disable_fc_autoneg = false;
 
-       if (pause->rx_pause && pause->tx_pause)
+       if ((pause->rx_pause && pause->tx_pause) || pause->autoneg)
                fc.requested_mode = ixgbe_fc_full;
        else if (pause->rx_pause && !pause->tx_pause)
                fc.requested_mode = ixgbe_fc_rx_pause;