netdev
[Top] [All Lists]

Re: alloc_etherdev breaks ether=

To: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Subject: Re: alloc_etherdev breaks ether=
From: Jeff Garzik <jgarzik@xxxxxxxxxxxxxxxx>
Date: Fri, 29 Jun 2001 11:27:06 -0400
Cc: Andrew Morton <andrewm@xxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx, Linus Torvalds <torvalds@xxxxxxxxxxxxx>
Organization: MandrakeSoft
References: <E15G028-0000TQ-00@the-village.bc.nu>
Sender: owner-netdev@xxxxxxxxxxx
Alan Cox wrote:
> By all means add the extra setup options. It makes migration easier. However
> I would point out that the original implementation of eth= worked perfectly
> for 2.4 and someone broke it.

Not really,

- init_etherdev
- failure, call unregister_netdev
- ether= is no longer correct

or

- init_etherdev, calls /sbin/hotplug
- device comes up before dev->mem_start is read/set from ether=

It worked perfectly for the perfect case.

Anything -not- explicitly initialized in Space.c has fundamental
incompatibilities with ether= no matter which way you slice it,
alloc_etherdev or no.


> When you create ethfoo it creates a net_device initialised with ethfoo's
> parameters, so its also trivial to add
> 
>         eth_get_params(struct something *)
> 
> to handle the other cases without breaking compatibility

hmmm...   solving the race where register_netdev is called before struct
net_device is filled in is in conflict with a useable ether= AFAICS.

Better suggestions welcome...

-- 
Jeff Garzik      | Andre the Giant has a posse.
Building 1024    |
MandrakeSoft     |

<Prev in Thread] Current Thread [Next in Thread>