e1000e: suggest a possible workaround to a device hang on 82577/8
authorBruce Allan <bruce.w.allan@intel.com>
Tue, 20 Mar 2012 03:48:08 +0000 (03:48 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 3 May 2012 08:55:28 +0000 (01:55 -0700)
There is a known issue in the 82577 and 82578 device that can cause a hang
in the device hardware during traffic stress; the current workaround in the
driver is to disable transmit flow control by default.  If the user enables
transmit flow control and the device hang occurs, provide a message in the
syslog suggesting to re-enable the workaround.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e1000e/netdev.c

index c0e211b500cf307bf102dc83d67fa477fb672707..e86b524a5b156e7726a4fd4ea2c888e18fa78d63 100644 (file)
@@ -1084,6 +1084,10 @@ static void e1000_print_hw_hang(struct work_struct *work)
              phy_1000t_status,
              phy_ext_status,
              pci_status);
+
+       /* Suggest workaround for known h/w issue */
+       if ((hw->mac.type == e1000_pchlan) && (er32(CTRL) & E1000_CTRL_TFCE))
+               e_err("Try turning off Tx pause (flow control) via ethtool\n");
 }
 
 /**