OSDN Git Service

spider_net: Call dev_consume_skb_any instead of dev_kfree_skb.
authorEric W. Biederman <ebiederm@xmission.com>
Sun, 16 Mar 2014 01:20:12 +0000 (18:20 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 25 Mar 2014 04:19:13 +0000 (21:19 -0700)
Replace dev_kfree_skb with dev_consume_skb_any in
spider_net_release_tx_chain which can be called in hard irq and other
contexts.

dev_consume_skb_any was choosen as it preserves the current
dev_kfree_skb semantics (dev_kfree_skb is consume_skb) and
is because it is correct most of the time as most packets
will have been successfully transmitted not dropeed.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
drivers/net/ethernet/toshiba/spider_net.c

index 3f4a32e..0282d01 100644 (file)
@@ -860,7 +860,7 @@ spider_net_release_tx_chain(struct spider_net_card *card, int brutal)
                if (skb) {
                        pci_unmap_single(card->pdev, buf_addr, skb->len,
                                        PCI_DMA_TODEVICE);
-                       dev_kfree_skb(skb);
+                       dev_consume_skb_any(skb);
                }
        }
        return 0;