diff options
Diffstat (limited to 'target/linux/generic/patches-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch b/target/linux/generic/patches-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch new file mode 100644 index 0000000..322851d --- /dev/null +++ b/target/linux/generic/patches-4.4/070-v4.8-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++; + +@@ -467,6 +471,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; + } + +@@ -474,6 +479,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; + } + +@@ -484,6 +491,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 + +@@ -493,6 +501,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); |