2002-06-22 17:12:16

by Andries E. Brouwer

[permalink] [raw]
Subject: ethernet name clash at boot

On a machine with a handful of ethernet cards things go wrong
when booting 2.5.24. Backing out the change that makes
net_dev_init() into an initcall in net/core/dev.c solves
the problem (no doubt accidentally).

More precisely, what happens is that two cards both get assigned
eth0, and then when the second one wants to register the error
-EEXIST is returned.

Thus, some more locking is required, or names must only be given
to things in the dev_base chain, or ...

Andries


2002-06-22 17:23:19

by Kai Germaschewski

[permalink] [raw]
Subject: Re: ethernet name clash at boot

On Sat, 22 Jun 2002 [email protected] wrote:

> On a machine with a handful of ethernet cards things go wrong
> when booting 2.5.24. Backing out the change that makes
> net_dev_init() into an initcall in net/core/dev.c solves
> the problem (no doubt accidentally).
>
> More precisely, what happens is that two cards both get assigned
> eth0, and then when the second one wants to register the error
> -EEXIST is returned.
>
> Thus, some more locking is required, or names must only be given
> to things in the dev_base chain, or ...

Hmmh, I did that change (being aware of the potential to cause breakage,
though I actually thought it should be fine), so I'll go try figure out
what's going wrong. Can you give some more info on your config (which
ethernet drivers are built-in, and which ethernet cards do you have in
your box).

--Kai


2002-06-22 17:33:39

by Andries E. Brouwer

[permalink] [raw]
Subject: Re: ethernet name clash at boot

> Can you give some more info on your config

Hmm. The more you know about my actual setup the more likely
it is that you'll only fix the symptoms.

But anyway: what happens is that a vortex card starts initializing,
gets the name eth0, but then a 3c509 also takes eth0 and registers
first. The vortex gets -EEXIST.

Andries

[Everything built-in. No modules.]