I've been looking at various drivers to try to figure out how to receive a block of serial data in an atomic context. All the examples I can find buffer the receive data with calls to tty_insert_flip_string() or tty_insert_flip_char(), then they call tty_flip_buffer_push(). But, many drivers appear to call tty_flip_buffer_push() from an atomic context. If that is done with tty->low_latency==1 it turns into a call to flush_to_ldisc(), which then calls disc->ops->receive_buf(), which must not be called from an atomic context. Is the low_latency flag being forced to 0 somewhere behind the scenes when tty_flip_buffer_push() is being called from an atomic context? -- Grant Edwards grant.b.edwards Yow! I'm receiving a coded at message from EUBIE BLAKE!! gmail.com -- 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