Index: eepro100.c
===================================================================
RCS file: /home/oursoft/eepro100/eepro100.c,v
retrieving revision 1.20.2.13
diff -u -r1.20.2.13 eepro100.c
--- eepro100.c	2000/09/14 04:41:58	1.20.2.13
+++ eepro100.c	2001/02/13 01:22:07
@@ -726,6 +726,7 @@
 	   This takes less than 10usec and will easily finish before the next
 	   action. */
 	outl(PortReset, ioaddr + SCBPort);
+	inl(ioaddr + SCBPort);
 	/* Honor PortReset timing. */
 	udelay(10);
 
@@ -814,6 +815,7 @@
 #endif  /* kernel_bloat */
 
 	outl(PortReset, ioaddr + SCBPort);
+	inl(ioaddr + SCBPort);
 	/* Honor PortReset timing. */
 	udelay(10);
 
@@ -1037,6 +1039,9 @@
 	/* Set the segment registers to '0'. */
 	wait_for_cmd_done(ioaddr + SCBCmd);
 	outl(0, ioaddr + SCBPointer);
+	/* impose a delay to avoid a bug */
+	inl(ioaddr + SCBPointer);
+	udelay(10);
 	outb(RxAddrLoad, ioaddr + SCBCmd);
 	wait_for_cmd_done(ioaddr + SCBCmd);
 	outb(CUCmdBase, ioaddr + SCBCmd);
@@ -1298,6 +1303,7 @@
 		end_bh_atomic();
 		/* Reset the Tx and Rx units. */
 		outl(PortReset, ioaddr + SCBPort);
+		inl(ioaddr + SCBPort);
 		/* We may get spurious interrupts here.  But I don't think that they
 		   may do much harm.  1999/12/09 SAW */
 		udelay(10);