From: Eric W. Biederman Date: Sat, 15 Mar 2014 23:08:27 +0000 (-0700) Subject: macb: Call dev_kfree_skb_any instead of kfree_skb. X-Git-Tag: v3.15-rc1~113^2~96^2~41 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c88b5b6a68da1bc4353521bde95246bbc0f85b5e;p=karo-tx-linux.git macb: Call dev_kfree_skb_any instead of kfree_skb. Replace kfree_skb with dev_kfree_skb_any in macb_start_xmit that can be called in hard irq and other contexts. macb_start_xmit only frees skbs when dropping them so dev_kfree_skb_any is used. Signed-off-by: "Eric W. Biederman" --- diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index d0c38e01e99f..6116887d2880 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c @@ -1045,7 +1045,7 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev) mapping = dma_map_single(&bp->pdev->dev, skb->data, len, DMA_TO_DEVICE); if (dma_mapping_error(&bp->pdev->dev, mapping)) { - kfree_skb(skb); + dev_kfree_skb_any(skb); goto unlock; }