Re: ttydev_cdevsw has no d_purge

From: Warner Losh <imp_at_bsdimp.com>
Date: Thu, 9 Aug 2012 10:05:47 -0600
On Aug 8, 2012, at 11:41 AM, Hans Petter Selasky wrote:

> On Wednesday 08 August 2012 19:24:18 Ed Schouten wrote:
>>> Ed: I would really like to see a custom argument for the tsw_free(),
>>> because it only needs to know the unit number, and the xsc for UCOM is
>>> freed when this is called and cannot be referred. Is it possible to have
>>> a separate "void *" for the tsw_free() function? Is this something which
>>> you can implement?
>> 
>> We could extend the TTY code to allow the softc to be changed, e.g.
>> tty_set_softc(). This function could be called right before calling
>> tty_rel_gone(). Still, I would prefer it if these kind of things would
> 
> Are you sure that the new softc won't be used in any callbacks when 
> tty_rel_gone() is called, except for tsw_free() ?
> 
>> not be part of the API. Is there really no way the deallocation of the
>> softc can be delayed until tsw_free() is called?
> 
> Yes, but that is inconvenient. We use the automatically allocated softc given 
> to the driver by newbus. When detach() returns, the softc is freed. Then we 
> need to block in detach, and that is causing the problem!

I thought the detach protocol was such that you shouldn't return from detach until all dangling references were gone.  you could use tsw_free to wake up the detach sleeper, no?

Warner
Received on Thu Aug 09 2012 - 14:05:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC