net: arc_emac: use dev_kfree_skb_any instead of dev_kfree_skb
Replace dev_kfree_skb with dev_kfree_skb_any in arc_emac_tx() which can be called from hard irq context (netpoll) and from other contexts. arc_emac_tx() only frees skbs that it has dropped. This is detected by Coccinelle semantic patch. Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e215701f2d
commit
0f6e87613c
drivers/net/ethernet/arc
|
@ -633,7 +633,7 @@ static int arc_emac_tx(struct sk_buff *skb, struct net_device *ndev)
|
||||||
if (unlikely(dma_mapping_error(&ndev->dev, addr))) {
|
if (unlikely(dma_mapping_error(&ndev->dev, addr))) {
|
||||||
stats->tx_dropped++;
|
stats->tx_dropped++;
|
||||||
stats->tx_errors++;
|
stats->tx_errors++;
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb_any(skb);
|
||||||
return NETDEV_TX_OK;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
dma_unmap_addr_set(&priv->tx_buff[*txbd_curr], addr, addr);
|
dma_unmap_addr_set(&priv->tx_buff[*txbd_curr], addr, addr);
|
||||||
|
|
Loading…
Reference in New Issue