From 96068a42e27395bba73f1d2d6a69babc08e04cc3 Mon Sep 17 00:00:00 2001
From: Todd Fujinaka <todd.fujinaka@intel.com>
Date: Tue, 8 Apr 2014 05:36:15 +0000
Subject: [PATCH] igb: fix stats for i210 rx_fifo_errors
BugLink: http://bugs.launchpad.net/bugs/1338893
RQDPC on i210/i211 is R/W not ReadClear. Clear after reading.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit e66c083aab32842f225bae2a2c30744bf96abaec)
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
drivers/net/ethernet/intel/igb/igb_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
@@ -4909,8 +4909,10 @@ void igb_update_stats(struct igb_adapter *adapter,
rcu_read_lock();
for (i = 0; i < adapter->num_rx_queues; i++) {
- u32 rqdpc = rd32(E1000_RQDPC(i));
struct igb_ring *ring = adapter->rx_ring[i];
+ u32 rqdpc = rd32(E1000_RQDPC(i));
+ if (hw->mac.type >= e1000_i210)
+ wr32(E1000_RQDPC(i), 0);
if (rqdpc) {
ring->rx_stats.drops += rqdpc;
--
2.0.1