summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Nishiyama <nishiyama.pedro@gmail.com>2025-03-01 03:23:00 -0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-05-29 11:02:07 +0200
commitf48ee562c095e552a30b8d9cc0566a267b410f8a (patch)
tree9d8c656ce2a53eef196136c35432db98ff1ad5b7
parent7ec409ee15ac18f3518be17d99ac6e16c3f70f60 (diff)
Bluetooth: Disable SCO support if READ_VOICE_SETTING is unsupported/broken
[ Upstream commit 14d17c78a4b1660c443bae9d38c814edea506f62 ] A SCO connection without the proper voice_setting can cause the controller to lock up. Signed-off-by: Pedro Nishiyama <nishiyama.pedro@gmail.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--net/bluetooth/hci_event.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index bc5b42fce2b8..889463340351 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -932,6 +932,9 @@ static u8 hci_cc_read_buffer_size(struct hci_dev *hdev, void *data,
hdev->sco_pkts = 8;
}
+ if (!read_voice_setting_capable(hdev))
+ hdev->sco_pkts = 0;
+
hdev->acl_cnt = hdev->acl_pkts;
hdev->sco_cnt = hdev->sco_pkts;