myri10ge: fix per-slice rx/tx_dropped counters
Properly attribute transmit and receive drops by incrementing the per-slice counter. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a61fc1e995
commit
d6279c88f2
1 changed files with 4 additions and 2 deletions
|
@ -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)
|
||||||
{
|
{
|
||||||
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)
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue