From: Eric W. Biederman Date: Sat, 15 Mar 2014 22:49:08 +0000 (-0700) Subject: pcnet32: Call dev_kfree_skb_any instead of dev_kfree_skb. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=af9ba92cb2e8874ec35055212b15be044cb96e3c;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git pcnet32: Call dev_kfree_skb_any instead of dev_kfree_skb. Replace dev_kfree_skb with dev_kfree_skb_any in pcnet32_start_xmit that can be called in hard irq and other contexts. dev_kfree_skb_any is used as pcnet32_start_xmit only frees an skb when it drops a packet during transmit. Signed-off-by: "Eric W. Biederman" --- diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c index 2ae00ed83afa..e7cc9174e364 100644 --- a/drivers/net/ethernet/amd/pcnet32.c +++ b/drivers/net/ethernet/amd/pcnet32.c @@ -2448,7 +2448,7 @@ static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb, lp->tx_dma_addr[entry] = pci_map_single(lp->pci_dev, skb->data, skb->len, PCI_DMA_TODEVICE); if (pci_dma_mapping_error(lp->pci_dev, lp->tx_dma_addr[entry])) { - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); dev->stats.tx_dropped++; goto drop_packet; }