Message ID | 6387d20af8252ea1198c81afe728a9f67cd6bf77.1677179059.git.pav@iki.fi (mailing list archive) |
---|---|
State | Accepted |
Commit | 46a5d2beccb2ea73f28502950f52032cf4811d37 |
Headers | show |
Series | [BlueZ] device: wait GATT client ready before service accept() if no cache | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/CheckPatch | success | CheckPatch PASS |
tedd_an/GitLint | fail | WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search 21: B2 Line has trailing whitespace: " " |
tedd_an/BuildEll | success | Build ELL PASS |
tedd_an/BluezMake | success | Bluez Make PASS |
tedd_an/MakeCheck | success | Bluez Make Check PASS |
tedd_an/MakeDistcheck | success | Make Distcheck PASS |
tedd_an/CheckValgrind | success | Check Valgrind PASS |
tedd_an/CheckSmatch | success | CheckSparse PASS |
tedd_an/bluezmakeextell | success | Make External ELL PASS |
tedd_an/IncrementalBuild | success | Incremental Build PASS |
tedd_an/ScanBuild | success | Scan Build PASS |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=724435 ---Test result--- Test Summary: CheckPatch PASS 0.49 seconds GitLint FAIL 0.59 seconds BuildEll PASS 26.78 seconds BluezMake PASS 970.99 seconds MakeCheck PASS 11.77 seconds MakeDistcheck PASS 151.46 seconds CheckValgrind PASS 245.01 seconds CheckSmatch PASS 328.16 seconds bluezmakeextell PASS 98.01 seconds IncrementalBuild PASS 875.90 seconds ScanBuild PASS 1023.96 seconds Details ############################## Test: GitLint - FAIL Desc: Run gitlint Output: [BlueZ] device: wait GATT client ready before service accept() if no cache WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search 21: B2 Line has trailing whitespace: " " --- Regards, Linux Bluetooth
Hello: This patch was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Thu, 23 Feb 2023 19:14:44 +0000 you wrote: > On device ATT attach, do not immediately call accept() for profiles, if > there is no cached data in GATT database. Instead, wait for service > resolution to complete, as likely accept() cannot succeed before that. > > Several profiles (bap, vcp, midi, deviceinfo) assume that GATT > attributes are available when their accept() is called, returning > success even if not. In this case, the services never find the remote > attributes and are not operable. Other profiles (hog, batt, ...) fail > their accept which prompts core to retry after discovery, and work > correctly also in this case. > > [...] Here is the summary with links: - [BlueZ] device: wait GATT client ready before service accept() if no cache https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=46a5d2beccb2 You are awesome, thank you!
diff --git a/src/device.c b/src/device.c index 28b93eb9a..d270421cc 100644 --- a/src/device.c +++ b/src/device.c @@ -5155,10 +5155,11 @@ static void gatt_client_init(struct btd_device *device) g_attrib_attach_client(device->attrib, device->client); /* - * Notify notify existing service about the new connection so they can - * react to notifications while discovering services + * If we have cache, notify existing service about the new connection + * so they can react to notifications while discovering services */ - device_accept_gatt_profiles(device); + if (!gatt_db_isempty(device->db)) + device_accept_gatt_profiles(device); device->gatt_ready_id = bt_gatt_client_ready_register(device->client, gatt_client_ready_cb,