igb: fix stats handling
authorEric Dumazet <eric.dumazet@gmail.com>
Fri, 15 Oct 2010 17:27:10 +0000 (17:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Oct 2010 14:54:29 +0000 (07:54 -0700)
commit12dcd86b75d571772512676ab301279952efc0b0
tree8214cabf20bfcba9fb58c642f5d1d2b544f4966e
parentdce87b960cf4794141f067d8c8180ccc6716513f
igb: fix stats handling

There are currently some problems with igb.

- On 32bit arches, maintaining 64bit counters without proper
synchronization between writers and readers.

- Stats updated every two seconds, as reported by Jesper.
   (Jesper provided a patch for this)

- Potential problem between worker thread and ethtool -S

This patch uses u64_stats_sync, and convert everything to be 64bit safe,
SMP safe, even on 32bit arches. It integrates Jesper idea of providing
accurate stats at the time user reads them.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Tested-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/igb/igb.h
drivers/net/igb/igb_ethtool.c
drivers/net/igb/igb_main.c