Commit 6d490f62 authored by Florian Fainelli's avatar Florian Fainelli Committed by David S. Miller

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: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f6613d4f
...@@ -246,6 +246,8 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac, ...@@ -246,6 +246,8 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac,
err_drop: err_drop:
dev_kfree_skb(skb); dev_kfree_skb(skb);
net_dev->stats.tx_dropped++;
net_dev->stats.tx_errors++;
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
...@@ -284,6 +286,8 @@ static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring) ...@@ -284,6 +286,8 @@ static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
DMA_TO_DEVICE); DMA_TO_DEVICE);
if (slot->skb) { if (slot->skb) {
bgmac->net_dev->stats.tx_bytes += slot->skb->len;
bgmac->net_dev->stats.tx_packets++;
bytes_compl += slot->skb->len; bytes_compl += slot->skb->len;
pkts_compl++; pkts_compl++;
...@@ -464,6 +468,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring, ...@@ -464,6 +468,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n", bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n",
ring->start); ring->start);
put_page(virt_to_head_page(buf)); put_page(virt_to_head_page(buf));
bgmac->net_dev->stats.rx_errors++;
break; break;
} }
...@@ -471,6 +476,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring, ...@@ -471,6 +476,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n", bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
ring->start); ring->start);
put_page(virt_to_head_page(buf)); put_page(virt_to_head_page(buf));
bgmac->net_dev->stats.rx_length_errors++;
bgmac->net_dev->stats.rx_errors++;
break; break;
} }
...@@ -481,6 +488,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring, ...@@ -481,6 +488,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
if (unlikely(!skb)) { if (unlikely(!skb)) {
bgmac_err(bgmac, "build_skb failed\n"); bgmac_err(bgmac, "build_skb failed\n");
put_page(virt_to_head_page(buf)); put_page(virt_to_head_page(buf));
bgmac->net_dev->stats.rx_errors++;
break; break;
} }
skb_put(skb, BGMAC_RX_FRAME_OFFSET + skb_put(skb, BGMAC_RX_FRAME_OFFSET +
...@@ -490,6 +498,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring, ...@@ -490,6 +498,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
skb_checksum_none_assert(skb); skb_checksum_none_assert(skb);
skb->protocol = eth_type_trans(skb, bgmac->net_dev); 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); napi_gro_receive(&bgmac->napi, skb);
handled++; handled++;
} while (0); } while (0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment