Message ID | 1395727540-12148-17-git-send-email-ebiederm@xmission.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Mon, 2014-03-24 at 23:05 -0700, Eric W. Biederman wrote: > From: "Eric W. Biederman" <ebiederm@xmission.com> > > 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: "Eric W. Biederman" <ebiederm@xmission.com> > --- Acked-by: Eric Dumazet <edumazet@google.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/sge.c b/drivers/net/ethernet/chelsio/cxgb4vf/sge.c index 0a89963c48ce..9cfa4b4bb089 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/sge.c @@ -401,7 +401,7 @@ static void free_tx_desc(struct adapter *adapter, struct sge_txq *tq, if (sdesc->skb) { if (need_unmap) unmap_sgl(dev, sdesc->skb, sdesc->sgl, tq); - kfree_skb(sdesc->skb); + dev_consume_skb_any(sdesc->skb); sdesc->skb = NULL; } @@ -1275,7 +1275,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev) * need it any longer. */ inline_tx_skb(skb, &txq->q, cpl + 1); - dev_kfree_skb(skb); + dev_consume_skb_any(skb); } else { /* * Write the skb's Scatter/Gather list into the TX Packet CPL @@ -1354,7 +1354,7 @@ out_free: * An error of some sort happened. Free the TX skb and tell the * OS that we've "dealt" with the packet ... */ - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); return NETDEV_TX_OK; }