aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Bogdanov <dmitry.bogdanov@aquantia.com>2019-04-29 06:05:05 -0400
committerDavid S. Miller <davem@davemloft.net>2019-05-01 09:30:15 -0400
commitf55d477bb513c9267a46d7a795fb09f73084f76f (patch)
treeab08b03d99dbb8b348718d98ef19ca9a232dc19a
parent190f34384c6cfed30fe8a1f94f7a25de129ccaa9 (diff)
net: aquantia: get total counters from DMA block
aq_nic_update_ndev_stats pushes statistics to ndev->stats from system interface. This is not always good because it counts packets/bytes before any of rx filters (including mac filter). Its better to report the packet/bytes statistics from DMA counters which gives actual values of data transferred over pci. System level stats is still available via ethtool. Signed-off-by: Nikita Danilov <ndanilov@aquantia.com> Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com> Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/aquantia/atlantic/aq_nic.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
index 8018f483ae45..e82d25a91bc1 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -753,11 +753,12 @@ static void aq_nic_update_ndev_stats(struct aq_nic_s *self)
753 struct net_device *ndev = self->ndev; 753 struct net_device *ndev = self->ndev;
754 struct aq_stats_s *stats = self->aq_hw_ops->hw_get_hw_stats(self->aq_hw); 754 struct aq_stats_s *stats = self->aq_hw_ops->hw_get_hw_stats(self->aq_hw);
755 755
756 ndev->stats.rx_packets = stats->uprc + stats->mprc + stats->bprc; 756 ndev->stats.rx_packets = stats->dma_pkt_rc;
757 ndev->stats.rx_bytes = stats->ubrc + stats->mbrc + stats->bbrc; 757 ndev->stats.rx_bytes = stats->dma_oct_rc;
758 ndev->stats.rx_errors = stats->erpr; 758 ndev->stats.rx_errors = stats->erpr;
759 ndev->stats.tx_packets = stats->uptc + stats->mptc + stats->bptc; 759 ndev->stats.rx_dropped = stats->dpc;
760 ndev->stats.tx_bytes = stats->ubtc + stats->mbtc + stats->bbtc; 760 ndev->stats.tx_packets = stats->dma_pkt_tc;
761 ndev->stats.tx_bytes = stats->dma_oct_tc;
761 ndev->stats.tx_errors = stats->erpt; 762 ndev->stats.tx_errors = stats->erpt;
762 ndev->stats.multicast = stats->mprc; 763 ndev->stats.multicast = stats->mprc;
763} 764}