--- x/net/bluetooth/hci_core.c +++ y/net/bluetooth/hci_core.c @@ -3235,9 +3235,12 @@ void hci_send_acl(struct hci_chan *chan, BT_DBG("%s chan %p flags 0x%4.4x", hdev->name, chan, flags); + if (!mutex_trylock(&hdev->req_lock)) + return; hci_queue_acl(chan, &chan->data_q, skb, flags); queue_work(hdev->workqueue, &hdev->tx_work); + mutex_unlock(&hdev->req_lock); } /* Send SCO data */