netdev
[Top] [All Lists]

Re: alloc_etherdev breaks ether=

To: Andrew Morton <andrewm@xxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx
Subject: Re: alloc_etherdev breaks ether=
From: Jeff Garzik <jgarzik@xxxxxxxxxxxxxxxx>
Date: Fri, 29 Jun 2001 10:28:25 -0400
Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxx>
Organization: MandrakeSoft
References: <3B3C0137.1896A895@xxxxxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
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     |

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