Commit d6279c88 authored by Brice Goglin's avatar Brice Goglin Committed by David S. Miller

myri10ge: fix per-slice rx/tx_dropped counters

Properly attribute transmit and receive drops by incrementing the
per-slice counter.
Signed-off-by: default avatarBrice Goglin <brice@myri.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a61fc1e9
...@@ -1309,7 +1309,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx, ...@@ -1309,7 +1309,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx,
skb = netdev_alloc_skb(dev, MYRI10GE_HLEN + 16); skb = netdev_alloc_skb(dev, MYRI10GE_HLEN + 16);
if (unlikely(skb == NULL)) { if (unlikely(skb == NULL)) {
mgp->stats.rx_dropped++; ss->stats.rx_dropped++;
do { do {
i--; i--;
put_page(rx_frags[i].page); put_page(rx_frags[i].page);
...@@ -2926,6 +2926,7 @@ static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev) ...@@ -2926,6 +2926,7 @@ static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev)
{ {
struct sk_buff *segs, *curr; struct sk_buff *segs, *curr;
struct myri10ge_priv *mgp = netdev_priv(dev); struct myri10ge_priv *mgp = netdev_priv(dev);
struct myri10ge_slice_state *ss;
int status; int status;
segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6); segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6);
...@@ -2952,8 +2953,9 @@ static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev) ...@@ -2952,8 +2953,9 @@ static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev)
return 0; return 0;
drop: drop:
ss = &mgp->ss[skb_get_queue_mapping(skb)];
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
mgp->stats.tx_dropped += 1; ss->stats.tx_dropped += 1;
return 0; return 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