In message <2004...@nlsystems.com>, Doug Rabson writes:
The original intention was that drivers use the
device_busy()/device_unbusy() counter to handle these things. In some
cases, just calling device_busy() from fooopen() and device_unbusy()
from fooclose() is sufficient.
That is not enough. All methods in cdevsw, and things not in cdevsw
(clone handlers, call backs, etc etc) needs to refcount.
I have a lot of this working in a tree here, and will commit it once
I have gone over it a few more times.
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
ph...@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.