Commit 42ffda5f authored by Eric W. Biederman's avatar Eric W. Biederman

cxfb4vf: Call dev_kfree/consume_skb_any instead of [dev_]kfree_skb.

Replace kfree_skb with dev_consume_skb_any in free_tx_desc that can be
called in hard irq and other contexts. dev_consume_skb_any is used
as this function consumes successfully transmitted skbs.

Replace dev_kfree_skb with dev_kfree_skb_any in t4vf_eth_xmit that can
be called in hard irq and other contexts, on paths that drop the skb.

Replace dev_kfree_skb with dev_consume_skb_any in t4vf_eth_xmit that can
be called in hard irq and other contexts, on paths that successfully
transmit the skb.
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent a7525198
...@@ -401,7 +401,7 @@ static void free_tx_desc(struct adapter *adapter, struct sge_txq *tq, ...@@ -401,7 +401,7 @@ static void free_tx_desc(struct adapter *adapter, struct sge_txq *tq,
if (sdesc->skb) { if (sdesc->skb) {
if (need_unmap) if (need_unmap)
unmap_sgl(dev, sdesc->skb, sdesc->sgl, tq); unmap_sgl(dev, sdesc->skb, sdesc->sgl, tq);
kfree_skb(sdesc->skb); dev_consume_skb_any(sdesc->skb);
sdesc->skb = NULL; sdesc->skb = NULL;
} }
...@@ -1275,7 +1275,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1275,7 +1275,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev)
* need it any longer. * need it any longer.
*/ */
inline_tx_skb(skb, &txq->q, cpl + 1); inline_tx_skb(skb, &txq->q, cpl + 1);
dev_kfree_skb(skb); dev_consume_skb_any(skb);
} else { } else {
/* /*
* Write the skb's Scatter/Gather list into the TX Packet CPL * Write the skb's Scatter/Gather list into the TX Packet CPL
...@@ -1354,7 +1354,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1354,7 +1354,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev)
* An error of some sort happened. Free the TX skb and tell the * An error of some sort happened. Free the TX skb and tell the
* OS that we've "dealt" with the packet ... * OS that we've "dealt" with the packet ...
*/ */
dev_kfree_skb(skb); dev_kfree_skb_any(skb);
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment