netdev
[Top] [All Lists]

Re: 4/x: [NETDRV] Merge register_netdev calls

To: Jeff Garzik <jgarzik@xxxxxxxxx>
Subject: Re: 4/x: [NETDRV] Merge register_netdev calls
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 25 Jun 2004 20:12:54 +1000
Cc: netdev@xxxxxxxxxxx
In-reply-to: <20040611020855.GA5480@xxxxxxxxxxxxxxxxxxx>
References: <20040313025859.GA8186@xxxxxxxxxxxxxxxxxxx> <405C294D.5040508@xxxxxxxxx> <20040520111937.GA21804@xxxxxxxxxxxxxxxxxxx> <20040522074435.GA9628@xxxxxxxxxxxxxxxxxxx> <20040529084109.GA13032@xxxxxxxxxxxxxxxxxxx> <40BE3778.1020404@xxxxxxxxx> <20040605052737.GA27406@xxxxxxxxxxxxxxxxxxx> <40C8F824.50904@xxxxxxxxx> <20040611020855.GA5480@xxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.5.1+cvs20040105i
On Fri, Jun 11, 2004 at 12:08:55PM +1000, herbert wrote:
> 
> In fact it's really making these ISA/MCA probe() functions more
> like the ones we have for PCI.

To illustrate this, let's take the first driver touched by 4/x.
In 3c503, the function init_module() essentially does

for each ioaddr
        if (do_el2_probe(ioaddr) == 0)
                return 0

And do_el2_probe() just calls el2_probe1() which is similar
to your average PCI probe function except that the first thing
it does is to make sure that the device exists at ioaddr.

This is not that different from PCI where it would look
like

for each PCI device matching the vendor/product numbers
        if (do_el2_probe(device) == 0)
                return 0

Now before my patch, register_netdev was being called just
after do_el2_probe() returns.  My patch simply moves it to
the end of el2_probe1() which is exactly what would happen
if this were a PCI driver.

I've rediffed it against today's BK tree.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email:  Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

Attachment: p
Description: Text document

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