tilepro: Call dev_consume_skb_any instead of kfree_skb.

Replace kfree_skb with dev_consume_skb_any in tile_net_tx and
tile_net_tx_tso which can be called in hard irq and other contexts.

At the point where the skbs are freed a packet has been successfully
transmitted so dev_consume_skb_any is the appropriate variant to use.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
Eric W. Biederman 2014-03-15 18:18:02 -07:00
parent 241198acda
commit 66d1bee1f3

View file

@ -1824,7 +1824,7 @@ static int tile_net_tx_tso(struct sk_buff *skb, struct net_device *dev)
/* Handle completions. */
for (i = 0; i < nolds; i++)
kfree_skb(olds[i]);
dev_consume_skb_any(olds[i]);
/* Update stats. */
u64_stats_update_begin(&stats->syncp);
@ -2008,7 +2008,7 @@ static int tile_net_tx(struct sk_buff *skb, struct net_device *dev)
/* Handle completions. */
for (i = 0; i < nolds; i++)
kfree_skb(olds[i]);
dev_consume_skb_any(olds[i]);
/* HACK: Track "expanded" size for short packets (e.g. 42 < 60). */
u64_stats_update_begin(&stats->syncp);