1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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);
|