Messages in this thread | | | Date | Thu, 24 Apr 2014 11:01:07 +0200 | From | Andreas Bießmann <> | Subject | Re: [PATCH 02/13] bluetooth: hci_ldisc: fix deadlock condition |
| |
Dear Felipe Balbi,
On Wed, Apr 23, 2014 at 09:58:26AM -0500, Felipe Balbi wrote: > 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>
on custom TI AM37xx board with 3.4.87. Therefore I vote for adding this to stable branches (at least 3.4). It applies with a slight line shifting (init_work is not available there).
I wonder if you have seen my approach [1] to fix this deadlock. This stuff is quiet new to me. As I understood the work_queue has a bit more overhead than a tasklet. Therefore I implemented my fix with a tasklet. Would be great if one could shed some light on that.
Best regards
Andreas Bießmann
[1] https://lkml.org/lkml/2014/4/16/425
> --- > drivers/bluetooth/hci_ldisc.c | 24 +++++++++++++++++++----- > drivers/bluetooth/hci_uart.h | 1 + > 2 files changed, 20 insertions(+), 5 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |