Andrew Morton wrote:
>
> And it looks hard to fix.
>
> Problem is that ether= "knows" the device name, eth0. Whereas
> alloc_etherdev defers it. And the probe() method needs to get
> at dev->mem_start. Important.
Here is my proposed -2.4- fix:
ether=XXX is legacy mess that doesn't really apply in the present day.
It is useful for managing a bunch of ISA drivers built into the kernel,
and that's about it. This has been broken in various PCI drivers since
alloc_etherdev was introduced in 2.4.2-preXX, and this is the first time
it's come up.
ether=XXX should still work with ISA drivers (they use dev->init() not
alloc_etherdev), so my suggestion is to state that, for 2.4, ether=XXX
is only supported for ISA drivers (and other drivers with similar manual
probing/ordering needs).
For all other drivers, do the normal thing and use a __setup function to
set boot-time options, which is really all that 3c59x and the other
Becker-derived drivers need.
Comments? As Andrew said on IRC, really the only people who build their
drivers into their kernels are propellerheads like us :) All vendors I
know of build PCI net drivers as modules. So, yes this change would be
a "flag day" type change, but it should affect very few people, and the
people it does affect are smart enough to s/ether=/3c59x=/
Jeff
--
Jeff Garzik | Andre the Giant has a posse.
Building 1024 |
MandrakeSoft |
|