Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 467d2fce authored by Yang Wei's avatar Yang Wei Committed by David S. Miller
Browse files

net: 3com: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles



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

Signed-off-by: default avatarYang Wei <yang.wei9@zte.com.cn>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 67633e78
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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");