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:09:44 +0000 (20:09 -0700)
commita22d29e6e5757b1daed7d0b409a815eb33f66e4e
treeddf50395a27740c73be3ac5acda499ab6ef439e5
parent1a73877050e0cc7638b42901762fa411abda2512
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