diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2017-09-21 15:51:23 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2017-10-30 09:04:07 +0100 |
commit | a9ee77af751f435675054f5a7e2d2e69cbfe9e33 (patch) | |
tree | 75d3524a3d20e74e4d34d0e43b3f9b6ff41fe0cb /drivers/bluetooth/btqca.c | |
parent | 1f01d8be0e6a04bd682a55f6d50c14c1679e7571 (diff) |
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>
Diffstat (limited to 'drivers/bluetooth/btqca.c')
0 files changed, 0 insertions, 0 deletions