Re: [PATCH] Bluetooth: avoid recursive locking in hci_send_to_channel()

From: Marcel Holtmann
Date: Mon Oct 30 2017 - 04:05:14 EST


Hi Sebastian,

> 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.
>
> Cc: Marcel Holtmann <marcel@xxxxxxxxxxxx>
> Cc: Johan Hedberg <johan.hedberg@xxxxxxxxx>
> Fixes: 38ceaa00d02d ("Bluetooth: Add support for sending MGMT commands and events to monitor")
> Reported-by: Mart van de Wege <mvdwege@xxxxxxxxx>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
> net/bluetooth/hci_sock.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel