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);