>    that one i think is a much larger issue that affects *all* of our
>    drivers and needs a general fix where eg device_lookup_private()
>    returns a reference counted value that must be returned, before the
>    module can be considered ready to unload (this still leaves a very
>    minor race between device_put(d); and return;...)
> 
> I have the attached patch in my tree to add reference counting to
> device_private.  I haven't committed it yet because I haven't made a
> proof-of-concept bug nor adapted any drivers to use it to demonstrate
> fixing the bug.

someone should do this :-)

> I'm also not sure reference counts are the right way to go: that would
> incur interprocessor synchronization for each device read/write/ioctl.
> It may be that passive references, or per-CPU counters like dyoung@
> mentioned, are a better way to go.

that's why i said "eg device_lookup_private() returns a reference
counted value" :-)  the as long as there are get and put operations
that DTRT and are easy to use programatically, that's all we need.

patch idea looks sane to me.


.mrg.

Reply via email to