igb: update stats before doing reset in igb_down
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 6 Feb 2009 23:22:32 +0000 (23:22 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 7 Feb 2009 10:43:16 +0000 (02:43 -0800)
It was seen with repeated interface up/down testing that there was a large
stray between the stats reported by the queues and the stats reported by the
HW.  It was found to be an issue in that hw stats were being reset without
first being recorded.  This change records the stats before wiping them from
the system via the reset.

Signed-off-by: Alexander Duyck <alexander.h.duyck@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_main.c

index 3b79ad8be53a11b3b0f195cd75a02c79f42dfda0..88f135f4b27fc2a8262fe89bb4b302ebb629497c 100644 (file)
@@ -858,6 +858,10 @@ void igb_down(struct igb_adapter *adapter)
 
        netdev->tx_queue_len = adapter->tx_queue_len;
        netif_carrier_off(netdev);
+
+       /* record the stats before reset*/
+       igb_update_stats(adapter);
+
        adapter->link_speed = 0;
        adapter->link_duplex = 0;