Message ID | 20240821145602.92083-2-iulia.tanasescu@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add Scan Delegator support for Add Source op | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/CheckPatch | success | CheckPatch PASS |
tedd_an/GitLint | success | Gitlint PASS |
tedd_an/BuildEll | success | Build ELL PASS |
tedd_an/BluezMake | success | Bluez Make PASS |
tedd_an/MakeCheck | fail | BlueZ Make Check FAIL: |
tedd_an/MakeDistcheck | fail | Make Distcheck FAIL: Package cups was not found in the pkg-config search path. Perhaps you should add the directory containing `cups.pc' to the PKG_CONFIG_PATH environment variable No package 'cups' found make[4]: *** [Makefile:11766: test-suite.log] Error 1 make[3]: *** [Makefile:11874: check-TESTS] Error 2 make[2]: *** [Makefile:12303: check-am] Error 2 make[1]: *** [Makefile:12305: check] Error 2 make: *** [Makefile:12226: distcheck] Error 1 |
tedd_an/CheckValgrind | fail | Check Valgrind FAIL: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12725:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12725 | int main(int argc, char *argv[]) | ^~~~ make[3]: *** [Makefile:11766: test-suite.log] Error 1 make[2]: *** [Makefile:11874: check-TESTS] Error 2 make[1]: *** [Makefile:12303: check-am] Error 2 make: *** [Makefile:12305: check] Error 2 |
tedd_an/CheckSmatch | success | CheckSparse PASS |
tedd_an/bluezmakeextell | success | Make External ELL PASS |
tedd_an/IncrementalBuild | success | Incremental Build PASS |
tedd_an/ScanBuild | fail | Scan Build FAIL |
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=881804 ---Test result--- Test Summary: CheckPatch PASS 6.48 seconds GitLint PASS 4.24 seconds BuildEll PASS 25.43 seconds BluezMake PASS 1716.50 seconds MakeCheck FAIL 12.96 seconds MakeDistcheck FAIL 159.27 seconds CheckValgrind FAIL 250.18 seconds CheckSmatch PASS 356.21 seconds bluezmakeextell PASS 119.88 seconds IncrementalBuild FAIL 1478.07 seconds ScanBuild FAIL 537.51 seconds Details ############################## Test: MakeCheck - FAIL Desc: Run Bluez Make Check Output: make[3]: *** [Makefile:11766: test-suite.log] Error 1 make[2]: *** [Makefile:11874: check-TESTS] Error 2 make[1]: *** [Makefile:12303: check-am] Error 2 make: *** [Makefile:12305: check] Error 2 ############################## Test: MakeDistcheck - FAIL Desc: Run Bluez Make Distcheck Output: Package cups was not found in the pkg-config search path. Perhaps you should add the directory containing `cups.pc' to the PKG_CONFIG_PATH environment variable No package 'cups' found make[4]: *** [Makefile:11766: test-suite.log] Error 1 make[3]: *** [Makefile:11874: check-TESTS] Error 2 make[2]: *** [Makefile:12303: check-am] Error 2 make[1]: *** [Makefile:12305: check] Error 2 make: *** [Makefile:12226: distcheck] Error 1 ############################## Test: CheckValgrind - FAIL Desc: Run Bluez Make Check with Valgrind Output: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12725:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12725 | int main(int argc, char *argv[]) | ^~~~ make[3]: *** [Makefile:11766: test-suite.log] Error 1 make[2]: *** [Makefile:11874: check-TESTS] Error 2 make[1]: *** [Makefile:12303: check-am] Error 2 make: *** [Makefile:12305: check] Error 2 ############################## Test: IncrementalBuild - FAIL Desc: Incremental build with the patches in the series Output: [BlueZ,02/14] shared/bass: Make bt_bcast_src private src/shared/bass.c: In function ‘connect_cb’: src/shared/bass.c:677:27: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 677 | queue_push_tail(bcast_src->bises, io); | ^~ src/shared/bass.c:712:26: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 712 | queue_destroy(bcast_src->bises, bass_bis_unref); | ^~ src/shared/bass.c:713:12: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 713 | bcast_src->bises = NULL; | ^~ src/shared/bass.c:716:34: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 716 | g_io_channel_shutdown(bcast_src->listen_io, TRUE, NULL); | ^~ src/shared/bass.c:717:31: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 717 | g_io_channel_unref(bcast_src->listen_io); | ^~ src/shared/bass.c:718:12: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 718 | bcast_src->listen_io = NULL; | ^~ src/shared/bass.c:721:16: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 721 | if (bcast_src->pa_sync_io) { | ^~ src/shared/bass.c:722:35: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 722 | g_io_channel_shutdown(bcast_src->pa_sync_io, | ^~ src/shared/bass.c:724:32: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 724 | g_io_channel_unref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:725:13: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 725 | bcast_src->pa_sync_io = NULL; | ^~ src/shared/bass.c: In function ‘confirm_cb’: src/shared/bass.c:788:11: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 788 | bcast_src->pa_sync_io = io; | ^~ src/shared/bass.c:789:28: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 789 | g_io_channel_ref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:807:37: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 807 | if (!bt_io_bcast_accept(bcast_src->pa_sync_io, | ^~ src/shared/bass.c: In function ‘bass_handle_add_src_op’: src/shared/bass.c:1081:12: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1081 | bcast_src->listen_io = io; | ^~ src/shared/bass.c:1082:29: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1082 | g_io_channel_ref(bcast_src->listen_io); | ^~ src/shared/bass.c:1084:32: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1084 | if (num_bis > 0 && !bcast_src->bises) | ^~ src/shared/bass.c:1085:13: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1085 | bcast_src->bises = queue_new(); | ^~ src/shared/bass.c: In function ‘bass_handle_set_bcast_code_op’: src/shared/bass.c:1170:16: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1170 | if (!bcast_src->pa_sync_io) | ^~ src/shared/bass.c:1173:41: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1173 | sk = g_io_channel_unix_get_fd(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:1190:35: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1190 | if (!bt_io_bcast_accept(bcast_src->pa_sync_io, connect_cb, | ^~ src/shared/bass.c: In function ‘bass_bcast_src_free’: src/shared/bass.c:1378:15: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1378 | if (bcast_src->listen_io) { | ^~ src/shared/bass.c:1379:34: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1379 | g_io_channel_shutdown(bcast_src->listen_io, TRUE, NULL); | ^~ src/shared/bass.c:1380:31: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1380 | g_io_channel_unref(bcast_src->listen_io); | ^~ src/shared/bass.c:1383:15: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1383 | if (bcast_src->pa_sync_io) { | ^~ src/shared/bass.c:1384:34: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1384 | g_io_channel_shutdown(bcast_src->pa_sync_io, TRUE, NULL); | ^~ src/shared/bass.c:1385:31: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1385 | g_io_channel_unref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:1388:25: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1388 | queue_destroy(bcast_src->bises, bass_bis_unref); | ^~ make[1]: *** [Makefile:8672: src/shared/libshared_mainloop_la-bass.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4676: all] Error 2 ############################## Test: ScanBuild - FAIL Desc: Run Scan Build Output: src/shared/gatt-client.c:451:21: warning: Use of memory after it is freed gatt_db_unregister(op->client->db, op->db_id); ^~~~~~~~~~ src/shared/gatt-client.c:696:2: warning: Use of memory after it is freed discovery_op_complete(op, false, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:996:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1102:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1296:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1361:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1636:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1641:2: warning: Use of memory after it is freed discover_all(op); ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2145:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2153:8: warning: Use of memory after it is freed discovery_op_ref(op), ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3242:2: warning: Use of memory after it is freed complete_write_long_op(req, success, 0, false); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3264:2: warning: Use of memory after it is freed request_unref(req); ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/bass.c: In function ‘connect_cb’: src/shared/bass.c:677:27: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 677 | queue_push_tail(bcast_src->bises, io); | ^~ src/shared/bass.c:712:26: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 712 | queue_destroy(bcast_src->bises, bass_bis_unref); | ^~ src/shared/bass.c:713:12: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 713 | bcast_src->bises = NULL; | ^~ src/shared/bass.c:716:34: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 716 | g_io_channel_shutdown(bcast_src->listen_io, TRUE, NULL); | ^~ src/shared/bass.c:717:31: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 717 | g_io_channel_unref(bcast_src->listen_io); | ^~ src/shared/bass.c:718:12: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 718 | bcast_src->listen_io = NULL; | ^~ src/shared/bass.c:721:16: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 721 | if (bcast_src->pa_sync_io) { | ^~ src/shared/bass.c:722:35: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 722 | g_io_channel_shutdown(bcast_src->pa_sync_io, | ^~ src/shared/bass.c:724:32: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 724 | g_io_channel_unref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:725:13: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 725 | bcast_src->pa_sync_io = NULL; | ^~ src/shared/bass.c: In function ‘confirm_cb’: src/shared/bass.c:788:11: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 788 | bcast_src->pa_sync_io = io; | ^~ src/shared/bass.c:789:28: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 789 | g_io_channel_ref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:807:37: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 807 | if (!bt_io_bcast_accept(bcast_src->pa_sync_io, | ^~ src/shared/bass.c: In function ‘bass_handle_add_src_op’: src/shared/bass.c:1081:12: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1081 | bcast_src->listen_io = io; | ^~ src/shared/bass.c:1082:29: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1082 | g_io_channel_ref(bcast_src->listen_io); | ^~ src/shared/bass.c:1084:32: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1084 | if (num_bis > 0 && !bcast_src->bises) | ^~ src/shared/bass.c:1085:13: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1085 | bcast_src->bises = queue_new(); | ^~ src/shared/bass.c: In function ‘bass_handle_set_bcast_code_op’: src/shared/bass.c:1170:16: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1170 | if (!bcast_src->pa_sync_io) | ^~ src/shared/bass.c:1173:41: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1173 | sk = g_io_channel_unix_get_fd(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:1190:35: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1190 | if (!bt_io_bcast_accept(bcast_src->pa_sync_io, connect_cb, | ^~ src/shared/bass.c: In function ‘bass_bcast_src_free’: src/shared/bass.c:1378:15: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1378 | if (bcast_src->listen_io) { | ^~ src/shared/bass.c:1379:34: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1379 | g_io_channel_shutdown(bcast_src->listen_io, TRUE, NULL); | ^~ src/shared/bass.c:1380:31: error: ‘struct bt_bcast_src’ has no member named ‘listen_io’ 1380 | g_io_channel_unref(bcast_src->listen_io); | ^~ src/shared/bass.c:1383:15: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1383 | if (bcast_src->pa_sync_io) { | ^~ src/shared/bass.c:1384:34: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1384 | g_io_channel_shutdown(bcast_src->pa_sync_io, TRUE, NULL); | ^~ src/shared/bass.c:1385:31: error: ‘struct bt_bcast_src’ has no member named ‘pa_sync_io’ 1385 | g_io_channel_unref(bcast_src->pa_sync_io); | ^~ src/shared/bass.c:1388:25: error: ‘struct bt_bcast_src’ has no member named ‘bises’ 1388 | queue_destroy(bcast_src->bises, bass_bis_unref); | ^~ make[1]: *** [Makefile:8672: src/shared/libshared_mainloop_la-bass.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4676: all] Error 2 --- Regards, Linux Bluetooth
diff --git a/src/shared/bass.c b/src/shared/bass.c index b54bf3094..bf739526c 100644 --- a/src/shared/bass.c +++ b/src/shared/bass.c @@ -73,6 +73,8 @@ struct bt_bass { struct queue *src_cbs; + unsigned int disconn_id; + void *user_data; }; @@ -1579,6 +1581,32 @@ static void bass_attached(void *data, void *user_data) cb->attached(bass, cb->user_data); } +static void bass_disconnected(int err, void *user_data) +{ + struct bt_bass *bass = user_data; + + bass->disconn_id = 0; + + DBG(bass, "bass %p disconnected err %d", bass, err); + + bt_bass_detach(bass); +} + +static void bass_attach_att(struct bt_bass *bass, struct bt_att *att) +{ + if (bass->disconn_id) { + if (att == bt_bass_get_att(bass)) + return; + + bt_att_unregister_disconnect(bt_bass_get_att(bass), + bass->disconn_id); + } + + bass->disconn_id = bt_att_register_disconnect(att, + bass_disconnected, + bass, NULL); +} + bool bt_bass_attach(struct bt_bass *bass, struct bt_gatt_client *client) { bt_uuid_t uuid; @@ -1590,8 +1618,11 @@ bool bt_bass_attach(struct bt_bass *bass, struct bt_gatt_client *client) queue_foreach(bass_cbs, bass_attached, bass); - if (!client) + if (!client) { + if (bass->att) + bass_attach_att(bass, bass->att); return true; + } if (bass->client) return false; @@ -1600,6 +1631,8 @@ bool bt_bass_attach(struct bt_bass *bass, struct bt_gatt_client *client) if (!bass->client) return false; + bass_attach_att(bass, bt_gatt_client_get_att(client)); + bt_uuid16_create(&uuid, BASS_UUID); gatt_db_foreach_service(bass->rdb->db, &uuid, foreach_bass_service, bass); @@ -1626,12 +1659,23 @@ static void bass_detached(void *data, void *user_data) void bt_bass_detach(struct bt_bass *bass) { + struct bt_att *att; + if (!queue_remove(sessions, bass)) return; + if (bass->client) + att = bt_gatt_client_get_att(bass->client); + else + att = bass->att; + + bt_att_unregister_disconnect(att, bass->disconn_id); + bt_gatt_client_unref(bass->client); bass->client = NULL; + bass->att = NULL; + queue_foreach(bass_cbs, bass_detached, bass); }