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]"