O> I could reproduce the problem now and bisected it down to a cleanup
So the init code isn't getting run somewhere for some reason. Almost
certainly a count bug.
I'll take a look. We really don't want to revert this as it fixes some
nasty things the BKL covers over so I'd be worried the races would become
exposed (and it possibly allows NULL->func() calls if it can which would
be bad)
First guess would be something in port->count going astray and the port
not getting re-initialised.
Important question - does it need a getty or will a simple cat < /dev/foo
twice get garbled (or cat > if its garbling the other way)
Which direction matters and whether a hangup is needed matters
--