Subject: mv643xx(19/20): Ensure NAPI poll routine only clears IRQs it handles

From: "Dale Farnsworth" <[email-masked]>
Date: Mon, 28 Mar 2005 17:00:24 -0700

Signed-off-by: Dale Farnsworth <[email-masked]>

Index: linux-2.5-enet/drivers/net/mv643xx_eth.c
===================================================================
--- linux-2.5-enet.orig/drivers/net/mv643xx_eth.c
+++ linux-2.5-enet/drivers/net/mv643xx_eth.c
@@ -1635,9 +1635,9 @@
 
 	if (done) {
 		spin_lock_irqsave(&mp->lock, flags);
+		mv643xx_eth_write(MV643XX_ETH_INTERRUPT_CAUSE_REG(port_num),
+				  ~0x0007fffd);
 		__netif_rx_complete(dev);
-		mv643xx_eth_write(MV643XX_ETH_INTERRUPT_CAUSE_REG(port_num), 0);
-		mv643xx_eth_write(MV643XX_ETH_INTERRUPT_CAUSE_EXTEND_REG(port_num), 0);
 		mv643xx_eth_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num),
 				  INT_CAUSE_UNMASK_ALL);
 		mv643xx_eth_write(MV643XX_ETH_INTERRUPT_EXTEND_MASK_REG(port_num),