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 t4_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 t4_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>
                if (d->skb) {                       /* an SGL is present */
                        if (unmap)
                                unmap_sgl(dev, d->skb, d->sgl, q);
-                       kfree_skb(d->skb);
+                       dev_consume_skb_any(d->skb);
                        d->skb = NULL;
                }
                ++d;
         * anything shorter than an Ethernet header.
         */
        if (unlikely(skb->len < ETH_HLEN)) {
-out_free:      dev_kfree_skb(skb);
+out_free:      dev_kfree_skb_any(skb);
                return NETDEV_TX_OK;
        }
 
 
        if (immediate) {
                inline_tx_skb(skb, &q->q, cpl + 1);
-               dev_kfree_skb(skb);
+               dev_consume_skb_any(skb);
        } else {
                int last_desc;