Sebastian Andrzej Siewior a9ee77af75 Bluetooth: avoid recursive locking in hci_send_to_channel()
Mart reported a deadlock in -RT in the call path:
  hci_send_monitor_ctrl_event() -> hci_send_to_channel()

because both functions acquire the same read lock hci_sk_list.lock. This
is also a mainline issue because the qrwlock implementation is writer
fair (the traditional rwlock implementation is reader biased).

To avoid the deadlock there is now __hci_send_to_channel() which expects
the readlock to be held.

Fixes: 38ceaa00d02d ("Bluetooth: Add support for sending MGMT commands and events to monitor")
Reported-by: Mart van de Wege <mvdwege@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2017-10-30 09:04:07 +01:00
..
2017-04-12 22:02:40 +02:00
2017-08-09 22:43:50 -07:00
2017-09-26 09:54:06 -07:00
2017-10-01 22:35:07 -07:00
2017-08-29 15:16:52 -07:00
2017-10-02 11:06:07 -07:00
2017-10-05 18:44:17 -07:00
2017-08-03 09:13:51 -07:00
2017-08-29 15:16:52 -07:00
2017-08-16 11:27:52 -07:00