> I agree that when the tty->low_latency flag is set on these machines, > the drivers that were modified by my patch will behave differently: > they will call the flush_to_ldisc() function directly instead of using > the work queue. So that indeed introduces different functionality. flush_to_ldisc calls into the tty core code which sleeps. The rule is that you may not call flush_to_ldisc except from a workqueue context. If you break that rule then various bad things will occur (eg rx -> flush_to_ldisc -> n_tty -> flow control -> tx -> deadlock) in a lot of drivers. > But what I don't understand is how this would cause the machine to > crash? Even when the flush_to_ldisc() function is called from hard IRQ > context this would cause no problems: the flush_to_ldisc() function > uses IRQ save spin locks instead of mutexes to protect it's critical > section. Right? > > Furthermore the majority of TTY drivers currently already use the > tty_flip_buffer_push() function. Several of them are ones that shouldn't. 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