From: Yang Wei <[email protected]>

dev_consume_skb_irq() should be called when skb xmit done. It makes
drop profiles(dropwatch, perf) more friendly.

Signed-off-by: Yang Wei <[email protected]>
---
 drivers/net/ethernet/3com/3c515.c | 4 ++--
 drivers/net/ethernet/3com/3c59x.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/3com/3c515.c 
b/drivers/net/ethernet/3com/3c515.c
index b648e3f..808abb6 100644
--- a/drivers/net/ethernet/3com/3c515.c
+++ b/drivers/net/ethernet/3com/3c515.c
@@ -1177,7 +1177,7 @@ static irqreturn_t corkscrew_interrupt(int irq, void 
*dev_id)
                                if (inl(ioaddr + DownListPtr) == 
isa_virt_to_bus(&lp->tx_ring[entry]))
                                        break;  /* It still hasn't been 
processed. */
                                if (lp->tx_skbuff[entry]) {
-                                       dev_kfree_skb_irq(lp->tx_skbuff[entry]);
+                                       
dev_consume_skb_irq(lp->tx_skbuff[entry]);
                                        lp->tx_skbuff[entry] = NULL;
                                }
                                dirty_tx++;
@@ -1192,7 +1192,7 @@ static irqreturn_t corkscrew_interrupt(int irq, void 
*dev_id)
 #ifdef VORTEX_BUS_MASTER
                if (status & DMADone) {
                        outw(0x1000, ioaddr + Wn7_MasterStatus);        /* Ack 
the event. */
-                       dev_kfree_skb_irq(lp->tx_skb);  /* Release the 
transferred buffer */
+                       dev_consume_skb_irq(lp->tx_skb);        /* Release the 
transferred buffer */
                        netif_wake_queue(dev);
                }
 #endif
diff --git a/drivers/net/ethernet/3com/3c59x.c 
b/drivers/net/ethernet/3com/3c59x.c
index 40f421d..1470514 100644
--- a/drivers/net/ethernet/3com/3c59x.c
+++ b/drivers/net/ethernet/3com/3c59x.c
@@ -2307,7 +2307,7 @@ _vortex_interrupt(int irq, struct net_device *dev)
                                dma_unmap_single(vp->gendev, vp->tx_skb_dma, 
(vp->tx_skb->len + 3) & ~3, DMA_TO_DEVICE);
                                pkts_compl++;
                                bytes_compl += vp->tx_skb->len;
-                               dev_kfree_skb_irq(vp->tx_skb); /* Release the 
transferred buffer */
+                               dev_consume_skb_irq(vp->tx_skb); /* Release the 
transferred buffer */
                                if (ioread16(ioaddr + TxFree) > 1536) {
                                        /*
                                         * AKPM: FIXME: I don't think we need 
this.  If the queue was stopped due to
@@ -2449,7 +2449,7 @@ _boomerang_interrupt(int irq, struct net_device *dev)
 #endif
                                        pkts_compl++;
                                        bytes_compl += skb->len;
-                                       dev_kfree_skb_irq(skb);
+                                       dev_consume_skb_irq(skb);
                                        vp->tx_skbuff[entry] = NULL;
                                } else {
                                        pr_debug("boomerang_interrupt: no 
skb!\n");
-- 
2.7.4


Reply via email to