I had a bigger dig into this and I think the path to make it workable is probably - Finish getting rid of the tty_lock (ie the last remnants of the BKL) - At that point we can rework the logic in tty_ldisc a bit and you can then hold tty->ldisc_mutex across the entire ldisc_receive. That will be a natural sane way to lock the ldisc. - Once that is in place it is possible to fix TIOCSTI and selection using that mutex to single thread. - Which then lets you fix the receive_room logic because its all running under a sensible locking model. I don't see any shortcuts here. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html