[PATCH] mv643xx_eth: Always free completed tx descs on tx interrupt
authorBrent Cook <bcook@bpointsys.com>
Wed, 12 Apr 2006 01:23:15 +0000 (18:23 -0700)
committerJeff Garzik <jeff@garzik.org>
Wed, 12 Apr 2006 22:11:23 +0000 (18:11 -0400)
Fix the tx interrupt handler to free completed tx descriptors even
when NAPI is enabled.  Otherwise, the tx queue would fill up resulting
in poor performance and "NETDEV WATCHDOG: <iface>: transmit timed out"
messages.

Signed-off-by: Brent Cook <bcook@bpointsys.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/mv643xx_eth.c

index 9f2661355a4acf3973e55b15d0ba24ba9d112959..85ac42c85aa91f8a83021ea36d8d852f2cb78ae2 100644 (file)
@@ -552,9 +552,9 @@ static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id,
 #else
        if (eth_int_cause & ETH_INT_CAUSE_RX)
                mv643xx_eth_receive_queue(dev, INT_MAX);
 #else
        if (eth_int_cause & ETH_INT_CAUSE_RX)
                mv643xx_eth_receive_queue(dev, INT_MAX);
+#endif
        if (eth_int_cause_ext & ETH_INT_CAUSE_TX)
                mv643xx_eth_free_completed_tx_descs(dev);
        if (eth_int_cause_ext & ETH_INT_CAUSE_TX)
                mv643xx_eth_free_completed_tx_descs(dev);
-#endif
 
        /*
         * If no real interrupt occured, exit.
 
        /*
         * If no real interrupt occured, exit.