zephyr/subsys/bluetooth
Mark Wang 891e457873 bluetooth: classic: Fix remote name resolving with multiple devices
The error occur when discoverying br devices and need to send request_name
for many found devices.
In system work queue task, bt_hci_inquiry_complete->
report_discovery_results is called, then request_name is called for all
the found devices. The controller gives HCI_Remote_Name_Request_Complete
event for every name request result and one buf is allocated from
hci_rx_pool to save HCI_Remote_Name_Request_Complete. When system work
queue task is blocked to call request_name for every device, many
HCI_Remote_Name_Request_Complete are received for the already sent
request_name, it uses up all the buf of hci_rx_pool, then the bt_rx_thread
task is blocked to get buf from hci_rx_pool when next
HCI_Remote_Name_Request_Complete is received, meanwhile the next
request_name send hci cmd and wait the result, but the hci status/complete
event can't be received because the bt_rx_thread is blocked and
bt_uart_isr is kept in the state to receive last
HCI_Remote_Name_Request_Complete, then bt_dev.ncmd_sem is not released,
then the next request_name send hci cmd again, but the bt_dev.ncmd_sem is
invalid, then bt_hci_cmd_send_sync fail and assert.

resolve it by requesting name one by one.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2025-04-03 17:48:04 +02:00
..
audio Bluetooth: TBS: Client: Fix sizeof('\0') 2025-03-28 12:20:10 +01:00
common subsys/bluetooth: Misc native_posix cleanup 2025-03-12 02:27:36 +01:00
controller Bluetooth: Controller: Fix an error code in ll_adv_sync_ad_data_set 2025-04-03 13:16:14 +02:00
crypto Bluetooth: crypto: add select PSA_WANT_ALG_ECB_NO_PADDING 2025-01-15 22:57:20 +01:00
host bluetooth: classic: Fix remote name resolving with multiple devices 2025-04-03 17:48:04 +02:00
lib
mesh Bluetooth: Mesh: Shell: fixes publication period calculation 2025-03-31 19:48:10 -04:00
services Bluetooth: Fixed null byte check in DIS UDI 2025-03-31 19:50:12 -04:00
CMakeLists.txt Bluetooth: Controller: Replace BT_CTLR with HAS_BT_CTLR 2024-12-03 10:16:44 +01:00
Kconfig bluetooth: host: Remove experimental flag from LE Connection Subrating 2025-03-17 13:57:03 +01:00
Kconfig.adv Bluetooth: Host: Remove experimental label from PAwR 2025-03-14 17:56:18 +01:00
Kconfig.logging Bluetooth: AVRCP: Implemation of AVRCP. 2024-11-18 13:19:07 -05:00