diff options
author | Brice Goglin <brice@myri.com> | 2008-11-20 04:50:04 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-20 04:50:04 -0500 |
commit | d6279c88f246adf94b7f7a014c5f19d527bc785b (patch) | |
tree | dd26d8052e5613c25c3f6f08a4e91b067e1d622f /drivers/net/myri10ge | |
parent | a61fc1e995e6ccc884df50a1609b831a4b45a600 (diff) |
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>
Diffstat (limited to 'drivers/net/myri10ge')
-rw-r--r-- | drivers/net/myri10ge/myri10ge.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 56c6f876042c..cd856d7ce9f1 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c | |||
@@ -1309,7 +1309,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx, | |||
1309 | 1309 | ||
1310 | skb = netdev_alloc_skb(dev, MYRI10GE_HLEN + 16); | 1310 | skb = netdev_alloc_skb(dev, MYRI10GE_HLEN + 16); |
1311 | if (unlikely(skb == NULL)) { | 1311 | if (unlikely(skb == NULL)) { |
1312 | mgp->stats.rx_dropped++; | 1312 | ss->stats.rx_dropped++; |
1313 | do { | 1313 | do { |
1314 | i--; | 1314 | i--; |
1315 | put_page(rx_frags[i].page); | 1315 | put_page(rx_frags[i].page); |
@@ -2926,6 +2926,7 @@ static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev) | |||
2926 | { | 2926 | { |
2927 | struct sk_buff *segs, *curr; | 2927 | struct sk_buff *segs, *curr; |
2928 | struct myri10ge_priv *mgp = netdev_priv(dev); | 2928 | struct myri10ge_priv *mgp = netdev_priv(dev); |
2929 | struct myri10ge_slice_state *ss; | ||
2929 | int status; | 2930 | int status; |
2930 | 2931 | ||
2931 | segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6); | 2932 | 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 | return 0; | 2953 | return 0; |
2953 | 2954 | ||
2954 | drop: | 2955 | drop: |
2956 | ss = &mgp->ss[skb_get_queue_mapping(skb)]; | ||
2955 | dev_kfree_skb_any(skb); | 2957 | dev_kfree_skb_any(skb); |
2956 | mgp->stats.tx_dropped += 1; | 2958 | ss->stats.tx_dropped += 1; |
2957 | return 0; | 2959 | return 0; |
2958 | } | 2960 | } |
2959 | 2961 | ||