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