Date: Fri, 10 Aug 2012 16:39:34 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: Ed Schouten <ed@80386.nl> Cc: Konstantin Belousov <kostikbel@gmail.com>, freebsd-current@freebsd.org Subject: Re: ttydev_cdevsw has no d_purge Message-ID: <201208101639.34082.hselasky@c2i.net> In-Reply-To: <CAJOYFBA=XXorS9PQDKTAc%2B=9AaK9hpd1YyGAFbLcDOvT3BOm%2Bg@mail.gmail.com> References: <20120801160323.GN2676@deviant.kiev.zoral.com.ua> <201208090851.56972.hselasky@c2i.net> <CAJOYFBA=XXorS9PQDKTAc%2B=9AaK9hpd1YyGAFbLcDOvT3BOm%2Bg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 10 August 2012 15:39:16 Ed Schouten wrote: > Hi Hans, > > 2012/8/9 Hans Petter Selasky <hselasky@c2i.net>: > > 1) Use unrhdr. Suggested by ed. > > Thanks! > > > 2) Implement tty_set_softc() and use that when dereffing ucom unit > > numbers. > > We're getting there. Now that I think of it, if we want to go in this > direction, we might as well do the following: > > - Simply call tty_alloc() -- not tty_alloc_mutex(). I'd rather get rid > of this functionality altogether, if possible. > - Use the TTY mutex to lock down the state of the ucom driver, e.g. > #define ucom_lock(sc) tty_lock(sc->sc_mtx). > > Any thoughts? Hi, Not possible :-( It will cause a hell inside ucom when multiple tty's are present having each their lock sharing the same USB device and possibly also an ethernet interface on the same softc. KISS: One lock per softc. No more no less. You're simply pushing a problem into ucom, that ucom has do do refcounting which should be generic for all TTY clients. BTW: I've changed by solutions a little bit to be more generic. I will commit it shortly. There are more problems like kldunload() and how you need to block kldunload() from completing when a softc is pending for tsw_free(). --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208101639.34082.hselasky>