diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2009-11-12 13:37:38 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-13 23:46:51 -0500 |
commit | 128e45eb61b90c0c3094139cab6d00f67ff31377 (patch) | |
tree | 202d2edd2e4707fc4a0b1d6c2166d7cd335a8b2f /drivers/net/igb/igb_main.c | |
parent | a99955fc067f57cf3b627d4c74bf7952a2d51029 (diff) |
igb: Rework how netdev->stats is handled
This patch does some refactoring work that I felt was needed after reviewing
the changes recently submitted relating to the replacement of net_stats with
netdev->stats.
This patch essentially creates two different collections of stats. The
first handles the adapter specific states and is stored in gstring_stats,
and the second is for netdev specific stats and is stored in
gstring_net_stats.
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>
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 0235220a1d29..4d4ab87aeaba 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -3789,7 +3789,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu) | |||
3789 | 3789 | ||
3790 | void igb_update_stats(struct igb_adapter *adapter) | 3790 | void igb_update_stats(struct igb_adapter *adapter) |
3791 | { | 3791 | { |
3792 | struct net_device *netdev = adapter->netdev; | 3792 | struct net_device_stats *net_stats = igb_get_stats(adapter->netdev); |
3793 | struct e1000_hw *hw = &adapter->hw; | 3793 | struct e1000_hw *hw = &adapter->hw; |
3794 | struct pci_dev *pdev = adapter->pdev; | 3794 | struct pci_dev *pdev = adapter->pdev; |
3795 | u32 rnbc; | 3795 | u32 rnbc; |
@@ -3813,13 +3813,13 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
3813 | for (i = 0; i < adapter->num_rx_queues; i++) { | 3813 | for (i = 0; i < adapter->num_rx_queues; i++) { |
3814 | u32 rqdpc_tmp = rd32(E1000_RQDPC(i)) & 0x0FFF; | 3814 | u32 rqdpc_tmp = rd32(E1000_RQDPC(i)) & 0x0FFF; |
3815 | adapter->rx_ring[i].rx_stats.drops += rqdpc_tmp; | 3815 | adapter->rx_ring[i].rx_stats.drops += rqdpc_tmp; |
3816 | netdev->stats.rx_fifo_errors += rqdpc_tmp; | 3816 | net_stats->rx_fifo_errors += rqdpc_tmp; |
3817 | bytes += adapter->rx_ring[i].rx_stats.bytes; | 3817 | bytes += adapter->rx_ring[i].rx_stats.bytes; |
3818 | packets += adapter->rx_ring[i].rx_stats.packets; | 3818 | packets += adapter->rx_ring[i].rx_stats.packets; |
3819 | } | 3819 | } |
3820 | 3820 | ||
3821 | netdev->stats.rx_bytes = bytes; | 3821 | net_stats->rx_bytes = bytes; |
3822 | netdev->stats.rx_packets = packets; | 3822 | net_stats->rx_packets = packets; |
3823 | 3823 | ||
3824 | bytes = 0; | 3824 | bytes = 0; |
3825 | packets = 0; | 3825 | packets = 0; |
@@ -3827,8 +3827,8 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
3827 | bytes += adapter->tx_ring[i].tx_stats.bytes; | 3827 | bytes += adapter->tx_ring[i].tx_stats.bytes; |
3828 | packets += adapter->tx_ring[i].tx_stats.packets; | 3828 | packets += adapter->tx_ring[i].tx_stats.packets; |
3829 | } | 3829 | } |
3830 | netdev->stats.tx_bytes = bytes; | 3830 | net_stats->tx_bytes = bytes; |
3831 | netdev->stats.tx_packets = packets; | 3831 | net_stats->tx_packets = packets; |
3832 | 3832 | ||
3833 | /* read stats registers */ | 3833 | /* read stats registers */ |
3834 | adapter->stats.crcerrs += rd32(E1000_CRCERRS); | 3834 | adapter->stats.crcerrs += rd32(E1000_CRCERRS); |
@@ -3865,7 +3865,7 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
3865 | rd32(E1000_GOTCH); /* clear GOTCL */ | 3865 | rd32(E1000_GOTCH); /* clear GOTCL */ |
3866 | rnbc = rd32(E1000_RNBC); | 3866 | rnbc = rd32(E1000_RNBC); |
3867 | adapter->stats.rnbc += rnbc; | 3867 | adapter->stats.rnbc += rnbc; |
3868 | netdev->stats.rx_fifo_errors += rnbc; | 3868 | net_stats->rx_fifo_errors += rnbc; |
3869 | adapter->stats.ruc += rd32(E1000_RUC); | 3869 | adapter->stats.ruc += rd32(E1000_RUC); |
3870 | adapter->stats.rfc += rd32(E1000_RFC); | 3870 | adapter->stats.rfc += rd32(E1000_RFC); |
3871 | adapter->stats.rjc += rd32(E1000_RJC); | 3871 | adapter->stats.rjc += rd32(E1000_RJC); |
@@ -3906,29 +3906,29 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
3906 | adapter->stats.icrxdmtc += rd32(E1000_ICRXDMTC); | 3906 | adapter->stats.icrxdmtc += rd32(E1000_ICRXDMTC); |
3907 | 3907 | ||
3908 | /* Fill out the OS statistics structure */ | 3908 | /* Fill out the OS statistics structure */ |
3909 | netdev->stats.multicast = adapter->stats.mprc; | 3909 | net_stats->multicast = adapter->stats.mprc; |
3910 | netdev->stats.collisions = adapter->stats.colc; | 3910 | net_stats->collisions = adapter->stats.colc; |
3911 | 3911 | ||
3912 | /* Rx Errors */ | 3912 | /* Rx Errors */ |
3913 | 3913 | ||
3914 | /* RLEC on some newer hardware can be incorrect so build | 3914 | /* RLEC on some newer hardware can be incorrect so build |
3915 | * our own version based on RUC and ROC */ | 3915 | * our own version based on RUC and ROC */ |
3916 | netdev->stats.rx_errors = adapter->stats.rxerrc + | 3916 | net_stats->rx_errors = adapter->stats.rxerrc + |
3917 | adapter->stats.crcerrs + adapter->stats.algnerrc + | 3917 | adapter->stats.crcerrs + adapter->stats.algnerrc + |
3918 | adapter->stats.ruc + adapter->stats.roc + | 3918 | adapter->stats.ruc + adapter->stats.roc + |
3919 | adapter->stats.cexterr; | 3919 | adapter->stats.cexterr; |
3920 | netdev->stats.rx_length_errors = adapter->stats.ruc + | 3920 | net_stats->rx_length_errors = adapter->stats.ruc + |
3921 | adapter->stats.roc; | 3921 | adapter->stats.roc; |
3922 | netdev->stats.rx_crc_errors = adapter->stats.crcerrs; | 3922 | net_stats->rx_crc_errors = adapter->stats.crcerrs; |
3923 | netdev->stats.rx_frame_errors = adapter->stats.algnerrc; | 3923 | net_stats->rx_frame_errors = adapter->stats.algnerrc; |
3924 | netdev->stats.rx_missed_errors = adapter->stats.mpc; | 3924 | net_stats->rx_missed_errors = adapter->stats.mpc; |
3925 | 3925 | ||
3926 | /* Tx Errors */ | 3926 | /* Tx Errors */ |
3927 | netdev->stats.tx_errors = adapter->stats.ecol + | 3927 | net_stats->tx_errors = adapter->stats.ecol + |
3928 | adapter->stats.latecol; | 3928 | adapter->stats.latecol; |
3929 | netdev->stats.tx_aborted_errors = adapter->stats.ecol; | 3929 | net_stats->tx_aborted_errors = adapter->stats.ecol; |
3930 | netdev->stats.tx_window_errors = adapter->stats.latecol; | 3930 | net_stats->tx_window_errors = adapter->stats.latecol; |
3931 | netdev->stats.tx_carrier_errors = adapter->stats.tncrs; | 3931 | net_stats->tx_carrier_errors = adapter->stats.tncrs; |
3932 | 3932 | ||
3933 | /* Tx Dropped needs to be maintained elsewhere */ | 3933 | /* Tx Dropped needs to be maintained elsewhere */ |
3934 | 3934 | ||