Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Aug 2012 10:05:47 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, Ed Schouten <ed@80386.nl>, freebsd-current@freebsd.org
Subject:   Re: ttydev_cdevsw has no d_purge
Message-ID:  <E62F7D46-A41B-4353-B773-0FC6296EE8C0@bsdimp.com>
In-Reply-To: <201208081941.17860.hselasky@c2i.net>
References:  <20120801160323.GN2676@deviant.kiev.zoral.com.ua> <201208081827.53824.hselasky@c2i.net> <CAJOYFBD4DxL8ZAeKDYZwtv2FaqcV0Taw%2BLES5nc6Ry_t%2BuzfOw@mail.gmail.com> <201208081941.17860.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help

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?
>>=20
>> 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
>=20
> Are you sure that the new softc won't be used in any callbacks when=20
> tty_rel_gone() is called, except for tsw_free() ?
>=20
>> not be part of the API. Is there really no way the deallocation of =
the
>> softc can be delayed until tsw_free() is called?
>=20
> Yes, but that is inconvenient. We use the automatically allocated =
softc given=20
> to the driver by newbus. When detach() returns, the softc is freed. =
Then we=20
> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E62F7D46-A41B-4353-B773-0FC6296EE8C0>