On Wed, 2004-07-21 at 10:21, Poul-Henning Kamp wrote:
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.
Methods in cdevsw which can't be called unless the device is opened can
rely on a single counter managed by open/close in most cases. Other
callbacks may or may not need extra handling depending on whether or not
the callback can persist past close.
Will you use the existing device_busy() counter or will each driver use
its own counter?