igb: Fix stats output on i210/i211 parts.
authorCarolyn Wyborny <carolyn.wyborny@intel.com>
Wed, 12 Sep 2012 04:36:24 +0000 (04:36 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sat, 22 Sep 2012 08:49:41 +0000 (01:49 -0700)
Due to a hardware issue, on i210 and i211 parts, the TNCRS statistic
provides an invalid value.  This patch changes the update stats function
to increment the stat only for non-i210/i211 parts.

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@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/igb/igb_main.c

index 073009671e7a402dfeaf0bdc64efc7b780092231..60cf3ebf4bb75fba231d273623db500399833ddf 100644 (file)
@@ -4776,7 +4776,11 @@ void igb_update_stats(struct igb_adapter *adapter,
        reg = rd32(E1000_CTRL_EXT);
        if (!(reg & E1000_CTRL_EXT_LINK_MODE_MASK)) {
                adapter->stats.rxerrc += rd32(E1000_RXERRC);
-               adapter->stats.tncrs += rd32(E1000_TNCRS);
+
+               /* this stat has invalid values on i210/i211 */
+               if ((hw->mac.type != e1000_i210) &&
+                   (hw->mac.type != e1000_i211))
+                       adapter->stats.tncrs += rd32(E1000_TNCRS);
        }
 
        adapter->stats.tsctc += rd32(E1000_TSCTC);