summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTodd Fujinaka <todd.fujinaka@intel.com>2014-04-08 09:36:15 +0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-04-19 05:24:53 +0400
commite66c083aab32842f225bae2a2c30744bf96abaec (patch)
tree37ec0dc52c888f3eb1a09e8fa782c32020b5cefb /drivers
parent3e7986f67c0e444b2419f25c48815e17ebbab836 (diff)
downloadlinux-e66c083aab32842f225bae2a2c30744bf96abaec.tar.xz
igb: fix stats for i210 rx_fifo_errors
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index fb98d4602f9d..16430a8440fa 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -5193,8 +5193,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;