[tulip-bug] Problem with 2.2.18

Donald Becker becker@scyld.com
Wed, 13 Dec 2000 09:41:21 -0500 (EST)

On Wed, 13 Dec 2000, Hidvegi wrote:

> I've just installed 2.2.18 and recompiled and installed tulip.c on my
> Thinkpaf 600E.  This worked fine with 2.2.18, but now I get the
> messages below when I insert a LinkSys PCM200.  Note that if reports
> two interfaces, eth0 and eth1, but eth0 cannot be used (resource
> temporarily unavailable).  But eth1 works fine.  eth0 and eth1 has
> different hw address, the address of eth1 is the correct one.  When I
> use the driver under 2.2.17 there is only eth0.  I tried the standard
> driver in ncftp ftp://ftp.scyld.com/pub/network/ and also the one in
> ncftp ftp://ftp.scyld.com/pub/network/test/, both has this problem.

This is due to a semantic change in the kernel/CardBus code.

Here is the sequence:
  The card is inserted
  NEW: The device appears in PCI space, but not all resources are assigned.
  The driver is loaded.
  The driver detects all cards in PCI space (finds "eth0").
  The CardBus code assigns the IRQ.
  The CardBus code tells the driver "here is a new device" (finds "eth1").

This interface change isn't pointless:  It allow reporting CardBus devices
as regular PCI device in /proc/bus/*.

But it is an interface change, and it broke previously correct code.  I
haven't figured out a clean way to handle the change.  Sleazy approaches
like looking for a non-zero bus number won't work.  I hoping that David
Hinds has a suggestion...

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993