bluetooth: hci_ldisc: fix deadlock condition
authorFelipe Balbi <balbi@ti.com>
Wed, 23 Apr 2014 14:58:26 +0000 (09:58 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Jul 2014 03:11:59 +0000 (20:11 -0700)
commit79319c68a2b76ebe34fc69dd52c67d47c06b9413
treeead463d4a6f0e0ab48ebad560ebf4aa4a1f1c46f
parent703d671298a54a293776aa88474b601fc480292a
bluetooth: hci_ldisc: fix deadlock condition

commit da64c27d3c93ee9f89956b9de86c4127eb244494 upstream.

LDISCs shouldn't call tty->ops->write() from within
->write_wakeup().

->write_wakeup() is called with port lock taken and
IRQs disabled, tty->ops->write() will try to acquire
the same port lock and we will deadlock.

Acked-by: Marcel Holtmann <marcel@holtmann.org>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Reported-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Tested-by: Andreas Bießmann <andreas@biessmann.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bluetooth/hci_ldisc.c
drivers/bluetooth/hci_uart.h