Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 May 2004 09:27:01 +0100
From:      Doug Rabson <dfr@nlsystems.com>
To:        des@des.no (Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?=)
Cc:        dfr@freebsd.org
Subject:   Re: newbus flaw
Message-ID:  <200405130927.01034.dfr@nlsystems.com>
In-Reply-To: <xzp8yfxcrs7.fsf@dwp.des.no>
References:  <xzp4qqn6n9v.fsf@dwp.des.no> <20040512175351.GF601@funkthat.com> <xzp8yfxcrs7.fsf@dwp.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 12 May 2004 21:30, Dag-Erling Sm=F8rgrav wrote:
> John-Mark Gurney <gurney_j@efn.org> writes:
> > You're always going to be a child of nexus, and since I assume from
> > the comment that there can only ever be one child.  Also, why do
> > you find_child w/ unit number 0, but then add a child with unit -1?
> >  Why not add it unit 0, and make it fail if that already exists?
>
> just didn't think about it.  the documentation is somewhat lacking,
> so some of the code is based on examining existing code and headers
> and guessing at what it all means.
>
> > Also, it seems to me that if dev already exists, that you shouldn't
> > reset the driver and desc.  This should be harmless, but if for
> > some reason you are called on an attached device, it could cause
> > problems.
>
> it'll all go pear-shaped if you don't.  if an ichwd device already
> exists, it is a leftover from a previous module load / unload cycle
> and the driver_t it references no longer exists.  ichwd_identify()
> should probably KASSERT that the device it finds isn't attached - I'm
> pretty sure it can't happen.

When the old module unloaded, its driver will have detached from the=20
device which it created. There is no reference to an old driver_t. Its=20
perfectly safe for the new driver to use the old device.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405130927.01034.dfr>