On Thu, 2014-03-20 at 11:34 -0500, Felipe Balbi wrote: > Hi, > > when 8250 driver calls uart_write_wakeup(), the tty port lock is already > taken. hci_ldisc.c's implementation of ->write_wakeup() calls > tty->ops->write() to actually send the characters, but that call will > try to acquire the same port lock again. > > Looking at other line disciplines that looks like a bug in hci_ldisc.c. > Am I correct to assume that ->write_wakeup() is supposed to *just* > wakeup the bottom half so we handle ->write() in another context ? > > Is it legal to call tty->ops->write() from within ->write_wakeup() ? It isn't because you might send all the bytes and go write write_wakeup write write wakeup ... and recurse 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