From: Jeremy Fitzhardinge <jeremy@goop.org>

On resume, the e100 chip seems to raise an interrupt during chip reset. 
Since there's no IRQ handler registered yet, the kernel complains that
"nobody cared" about the interrupt.  This change moves the call to
e100_disable_irq to be first in e100_hw_reset() so there are no spurious
interrupts.


Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/e100.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff -puN drivers/net/e100.c~fix-for-spurious-interrupts-on-e100-resume drivers/net/e100.c
--- 25/drivers/net/e100.c~fix-for-spurious-interrupts-on-e100-resume	Thu Sep  9 16:06:45 2004
+++ 25-akpm/drivers/net/e100.c	Thu Sep  9 16:06:45 2004
@@ -587,6 +587,10 @@ static inline void e100_disable_irq(stru
 
 static void e100_hw_reset(struct nic *nic)
 {
+	/* Mask off our interrupt line - it's unmasked after reset
+	   Do it early to prevent spurious interrupts. */
+	e100_disable_irq(nic);
+
 	/* Put CU and RU into idle with a selective reset to get
 	 * device off of PCI bus */
 	writel(selective_reset, &nic->csr->port);
@@ -605,9 +609,6 @@ static void e100_hw_reset(struct nic *ni
 		writeb(cuc_load_base, &nic->csr->scb.cmd_lo);
 		mdelay(20);
 	}
-
-	/* Mask off our interrupt line - it's unmasked after reset */
-	e100_disable_irq(nic);
 }
 
 static int e100_self_test(struct nic *nic)
_