ttydev_cdevsw has no d_purge
Hans Petter Selasky
hselasky at c2i.net
Thu Aug 9 05:36:59 UTC 2012
On Wednesday 08 August 2012 22:46:28 Ed Schouten wrote:
> Hi Hans,
>
> 2012/8/8 Hans Petter Selasky <hselasky at c2i.net>:
> > Are you sure that the new softc won't be used in any callbacks when
> > tty_rel_gone() is called, except for tsw_free() ?
>
> Yes. Otherwise you would have already seen a kernel panic. See
> /sys/sys/ttydevsw.h; it has assertions on the locking.
>
> > It is like a drain state, where a unit is collected for free, and then
> > committed to free state when the tsw_free() is called. In the [unlocked]
> > time in between the unit cannot be re-used.
>
> How is this different from calling alloc/free directly? Why would it
> need to go through this `drain' state?
Because multiple TTYS can share the same ucom unit, and then stuff gets more
complicated. I would then need refcounting and such to figure out when to
actually free everything. This is simply not needed.
I'll make a patch soonish to extend tty.h with a #define tty_set_softc() if
you don't mind.
--HPS
More information about the freebsd-current
mailing list