From: Eric W. Biederman Date: Sun, 16 Mar 2014 01:43:33 +0000 (-0700) Subject: virtio_net: Call dev_kfree_skb_any instead of dev_kfree_skb. X-Git-Tag: v3.15-rc1~113^2~96^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=85e945253955f399c2aacd220423a5e298e963b8;p=uclinux-h8%2Flinux.git virtio_net: Call dev_kfree_skb_any instead of dev_kfree_skb. Replace dev_kfree_skb with dev_kfree_skb_any in start_xmit which can be called in hard irq and other contexts. start_xmit only frees skbs that it is dropping. Signed-off-by: "Eric W. Biederman" --- diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 80d84c446962..99fa48c941c6 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -883,7 +883,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) dev_warn(&dev->dev, "Unexpected TXQ (%d) queue failure: %d\n", qnum, err); dev->stats.tx_dropped++; - kfree_skb(skb); + dev_kfree_skb_any(skb); return NETDEV_TX_OK; }