netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Mika Lansirinne <mika.lansirinne@stonesoft.com>,
	netdev@vger.kernel.org, gospo@redhat.com,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 09/11] ixgbe: get pauseparam autoneg
Date: Thu, 29 Sep 2011 22:24:49 -0700	[thread overview]
Message-ID: <1317360291-5576-10-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1317360291-5576-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Mika Lansirinne <mika.lansirinne@stonesoft.com>

There is a problem in the ixgbe driver with the reporting of the flow
control parameters. The autoneg parameter is shown to be of if
*either* it really is off, or current modes for both tx and rx are off.

The problem is seen when the parameters are read or set when the link
is down. In this case, the driver sees that tx and rx are currently off
and therefore autoneg parameter is incorrectly reported to be off too.
Also, the ethtool binary can not set the autoneg off since it sees that
it already is. When a link later comes up, the autonegotiation is
carried out normally and the driver later on reports the autoneg
parameter to be on (as it is) and then it can also be changed with
ethtool.

The patch is made against v3.0 kernel, but the problem seems to be there
since v2.6.30-rc1.

Reviewer comments: What we are trying to do is to disable flow control
while the cable is disconnected. Since ixgbe defaults to full flow
control, we call ethtool -A autoneg off rx off tx off while the cable
is disconnected. This doesn't work, because the driver sets
hw->fc.current_mode = ixgbe_fc_none if the cable is unplugged.
ixgbe_get_pauseparam() then reports to ethtool that nothing needs to be
done. The code fixes this, but it might have some unknown consequences.

Signed-off-by: Mika Lansirinne <mika.lansirinne@stonesoft.com>
Reviewed-by: Esa-Pekka Pyokkimies <esa-pekka.pyokkimies@stonesoft.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index db255fc..10ea29f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -372,13 +372,7 @@ static void ixgbe_get_pauseparam(struct net_device *netdev,
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 	struct ixgbe_hw *hw = &adapter->hw;
 
-	/*
-	 * Flow Control Autoneg isn't on if
-	 *  - we didn't ask for it OR
-	 *  - it failed, we know this by tx & rx being off
-	 */
-	if (hw->fc.disable_fc_autoneg ||
-	    (hw->fc.current_mode == ixgbe_fc_none))
+	if (hw->fc.disable_fc_autoneg)
 		pause->autoneg = 0;
 	else
 		pause->autoneg = 1;
-- 
1.7.6.2

  parent reply	other threads:[~2011-09-30  5:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-30  5:24 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2011-09-30  5:24 ` [net-next 01/11] e1000e: make function tables const Jeff Kirsher
2011-09-30  5:24 ` [net-next 02/11] ixgbe: prevent link checks while resetting Jeff Kirsher
2011-09-30  5:24 ` [net-next 03/11] ixgbe: clear the data field in ixgbe_read_i2c_byte_generic Jeff Kirsher
2011-09-30  5:24 ` [net-next 04/11] ixgbe: remove return code for functions that always return 0 Jeff Kirsher
2011-09-30  5:24 ` [net-next 05/11] ixgbe: fix driver version initialization in firmware Jeff Kirsher
2011-09-30  5:24 ` [net-next 06/11] ixgbe: add support for new 82599 device Jeff Kirsher
2011-09-30  5:24 ` [net-next 07/11] ixgbe: send MFLCN to ethtool Jeff Kirsher
2011-09-30  5:24 ` [net-next 08/11] ixgbe: do not disable flow control in ixgbe_check_mac_link Jeff Kirsher
2011-09-30  5:24 ` Jeff Kirsher [this message]
2011-09-30  5:24 ` [net-next 10/11] ixgbe: remove instances of ixgbe_phy_aq for 82598 and 82599 Jeff Kirsher
2011-09-30  5:24 ` [net-next 11/11] ixgbe: allow eeprom writes via ethtool Jeff Kirsher
2011-09-30 13:52   ` Ben Hutchings
2011-09-30 18:35 ` [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1317360291-5576-10-git-send-email-jeffrey.t.kirsher@intel.com \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=davem@davemloft.net \
    --cc=gospo@redhat.com \
    --cc=mika.lansirinne@stonesoft.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).