aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch')
-rw-r--r--target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch b/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch
new file mode 100644
index 0000000000..17a7ce060c
--- /dev/null
+++ b/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch
@@ -0,0 +1,68 @@
+From 6d490f62a4c7f11c552591bdd08eda3636aa0db9 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Tue, 7 Jun 2016 15:06:15 -0700
+Subject: [PATCH 3/3] bgmac: Maintain some netdev statistics
+
+Add a few netdev statistics to report transmitted and received bytes and
+packets and a few obvious errors.
+
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -246,6 +246,8 @@ err_dma_head:
+
+ err_drop:
+ dev_kfree_skb(skb);
++ net_dev->stats.tx_dropped++;
++ net_dev->stats.tx_errors++;
+ return NETDEV_TX_OK;
+ }
+
+@@ -284,6 +286,8 @@ static void bgmac_dma_tx_free(struct bgm
+ DMA_TO_DEVICE);
+
+ if (slot->skb) {
++ bgmac->net_dev->stats.tx_bytes += slot->skb->len;
++ bgmac->net_dev->stats.tx_packets++;
+ bytes_compl += slot->skb->len;
+ pkts_compl++;
+
+@@ -464,6 +468,7 @@ static int bgmac_dma_rx_read(struct bgma
+ bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n",
+ ring->start);
+ put_page(virt_to_head_page(buf));
++ bgmac->net_dev->stats.rx_errors++;
+ break;
+ }
+
+@@ -471,6 +476,8 @@ static int bgmac_dma_rx_read(struct bgma
+ bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
+ ring->start);
+ put_page(virt_to_head_page(buf));
++ bgmac->net_dev->stats.rx_length_errors++;
++ bgmac->net_dev->stats.rx_errors++;
+ break;
+ }
+
+@@ -481,6 +488,7 @@ static int bgmac_dma_rx_read(struct bgma
+ if (unlikely(!skb)) {
+ bgmac_err(bgmac, "build_skb failed\n");
+ put_page(virt_to_head_page(buf));
++ bgmac->net_dev->stats.rx_errors++;
+ break;
+ }
+ skb_put(skb, BGMAC_RX_FRAME_OFFSET +
+@@ -490,6 +498,8 @@ static int bgmac_dma_rx_read(struct bgma
+
+ skb_checksum_none_assert(skb);
+ skb->protocol = eth_type_trans(skb, bgmac->net_dev);
++ bgmac->net_dev->stats.rx_bytes += len;
++ bgmac->net_dev->stats.rx_packets++;
+ napi_gro_receive(&bgmac->napi, skb);
+ handled++;
+ } while (0);