On Wed, 2004-07-21 at 12:37, Poul-Henning Kamp wrote:
In message <1090...@builder02.qubesoft.com>, Doug Rabson writes
There are three parts to it, a refcount on cdevsw which tells us if
any thread is inside the driver using that route, a refcount on the
individual cdev and a linkage between the two.
The device_busy() counter is still simplest (as long as there is a
device_t at all). The implementation of devclass_delete_driver() will
automatically veto the unload (when its called from
The problem is that I cannot find the device_t without dereferencing
the struct cdev (either for si_driver or the dev_t) and by then
it is too late. There is no way we can avoid refcounting on the cdev.
Ok, so you are going to handle this in specfs (or whatever replaces
specfs)? That makes sense. Any ideas on how network interfaces should
work in this?