Layer 2 Multicasting problem on shut down system brings down all eepro100's on the net!!

Donald Becker becker@cesdis1.gsfc.nasa.gov
Fri Sep 10 18:37:03 1999


On Fri, 10 Sep 1999, Robert Schwartz wrote:

> Actually, we also saw the problem on a vanilla Debian 2.1 install when we rmmod'ed
> the eepro100 driver, it started to multicast. Even on a straight shutdown with
> Debian, we saw it. Its occasional, but there. We'll try the new driver.

OK, that's contrary to the documentation as well.

I have a first-rev i82558, and no i82559 board, so I might not be able to
reproduce this.

The new "kern-2.3" version might fix this, but it doesn't do it explicitly.
It puts the chip into ACPI-D2 mode in order to reduce the idle power. (The
Sony Vaio Z505 laptop which I borrowed from the NYU guys for two weeks
uses the eepro100.  An OK box, but it just sucks down battery power.)

Hmmm, an explicit fix would be the following.  In speedo_close() we can send
a selective reset instead of stopping the chip nicely.

-	/* Disable interrupts, and stop the chip's Rx process. */
-	outw(SCBMaskAll, ioaddr + SCBCmd);
-	outw(SCBMaskAll | RxAbort, ioaddr + SCBCmd);
+	/* Bonk the chip on the head. */
+	outl(PortPartialReset, ioaddr + SCBPort);

Note: Do not change this to PortReset!  The chip might violate the PCI
protocol and hang the PCI bus!

I'll make this change in my development version.

Could someone that can reproduce the problem please verify that it's a fix?

Donald Becker					  becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771
301-286-0882	     http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html