Branch: refs/heads/master Home: https://github.com/bluez/bluez Commit: dbe52200549bdc61fcd94c8c41d56c58d258ad7c https://github.com/bluez/bluez/commit/dbe52200549bdc61fcd94c8c41d56c58d258ad7c Author: Pauli Virtanen <pav@xxxxxx> Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M emulator/vhci.c M emulator/vhci.h Log Message: ----------- vhci: Add function to pause processing input from vhci Add function to pause (temporarily) reading data from vhci. This can be used to synchronously pause handling of btdev commands from the kernel. Commit: bfcc3f7bf48fa3c1fdbd3ae9bf6ae671575a4f1c https://github.com/bluez/bluez/commit/bfcc3f7bf48fa3c1fdbd3ae9bf6ae671575a4f1c Author: Pauli Virtanen <pav@xxxxxx> Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M emulator/hciemu.c M emulator/hciemu.h Log Message: ----------- hciemu: Add hciemu_flush_client_events for ordering VHCI vs bthost bthost commands execute with a delay because events may be sitting in the socketpair queues. This makes it difficult to ensure, when writing tests, that certain bthost commands have been handled, before any new events from VHCI are processed. To make event ordering possible, add a function that flushes client bthost/btdev socketpair queues, before processing any new VHCI events. This is done by pausing VHCI input processing until the kernel socketpair queues are empty. Commit: 465108814db2b7ba3037a83cb91f7de1cc2f7366 https://github.com/bluez/bluez/commit/465108814db2b7ba3037a83cb91f7de1cc2f7366 Author: Pauli Virtanen <pav@xxxxxx> Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M tools/sco-tester.c Log Message: ----------- sco-tester: add test for ACL disconnect before SCO established Simulate ACL being disconnected before SCO is established. Kernel shall not crash. eSCO ACL Disconnect - Failure Link: https://lore.kernel.org/linux-bluetooth/00000000000013b93805fbbadc50@xxxxxxxxxx/ Commit: 70b4db6803b46d5f9ad08a3f72eef9186b25e50a https://github.com/bluez/bluez/commit/70b4db6803b46d5f9ad08a3f72eef9186b25e50a Author: Pauli Virtanen <pav@xxxxxx> Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M tools/iso-tester.c Log Message: ----------- iso-tester: add test for ACL disconnect before ISO created Simulate ACL being disconnected when connecting ISO, before LE Create CIS got sent. The kernel shall indicate connection failure for the ISO socket immediately when the ACL is gone, since connecting the ISO can no longer proceed. ISO Connect ACL Disconnect - Failure Commit: e93094977f08442d13d120a6154f8236dcc491dc https://github.com/bluez/bluez/commit/e93094977f08442d13d120a6154f8236dcc491dc Author: Pauli Virtanen <pav@xxxxxx> Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M src/adapter.c Log Message: ----------- adapter: wait for kernel exp features in adapter initialization Things like BAP depend on ISO sockets being enabled in kernel. It is possible the MGMT commands enabling experimental kernel features do not complete, before BAP etc. initialization and probing starts, in which case BAP will be mostly nonfunctional. This was observed to occur always when running BlueZ in a Fedora VM, requiring bluetoothd restart after every boot for BAP to work, log containing lines in the order: bluetoothd[981]: src/adapter.c:read_exp_features_complete() 6fbaf188-05e0-496a-9885-d6ddfdb4e03e flags 0 action 1 bluetoothd[981]: src/adapter.c:read_info_complete() index 0 status 0x00 bluetoothd[981]: profiles/audio/bap.c:bap_probe() BAP requires ISO Socket which is not enabled bluetoothd[981]: src/adapter.c:iso_socket_complete() ISO Socket successfully set Fix by waiting in adapter initialization that all MGMT exp feature requests are done, before proceeding to read adapter information. Also fix canceling MGMT_OP_SET_EXP_FEATURE for ISO sockets. Compare: https://github.com/bluez/bluez/compare/0004eb06d5d9...e93094977f08