Re: nasty device_delete_child interaction

John Wehle <[email protected]> Thu, 29 Jan 2004 14:59:02 -0500 (EST)
Newsgroups gmane.os.freebsd.devel.new-bus
Message-ID <[email protected]>
> Don't do that.  You are duplicating the storage of children in two
> places.  If you need to cache a copy of a child, that's fine.
> However, don't delete it explicitly in xxx_detach.
> 
> I'd say that these drivers are wrong and should be fixed.

What's the correct approach?

Currently (at least in FreeBSD 4.9) if_xl.c uses device_add_child
in the attach routine to add on miibus.  It then calls device_delete_child
in the detach routine to delete miibus (creating a nice symmetry).

Should if_xl.c still call device_add_child in the attach and simply
not call device_delete_child?  Then who's responsible for deleting
miibus when if_xl is unloaded?

>: > It seems to me that any driver which calls device_delete_child
>: > as part of detaching must also implement something like:
>
> No.  They should avoid the problem by using newbus correctly.  This
> sort of solution just adds code to no good purpose.

If the driver has cached a copy of a child, then doesn't
xxx_child_detached still need to be implemented so the driver
knows when the cached copy is invalid?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: [email protected]  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-new-bus
To unsubscribe, send any mail to "[email protected]"