Message ID | 20210906113953.Bluez.v1.1.Id597e5ae87e680e6a744a8ed08d5000aacfce867@changeid (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [Bluez,v1,1/2] plugins/admin: add adapter_remove handler | expand |
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=542305 ---Test result--- Test Summary: CheckPatch PASS 0.60 seconds GitLint PASS 0.22 seconds Prep - Setup ELL PASS 43.75 seconds Build - Prep PASS 0.13 seconds Build - Configure PASS 7.75 seconds Build - Make FAIL 143.68 seconds Make Check FAIL 0.44 seconds Make Distcheck PASS 227.12 seconds Build w/ext ELL - Configure PASS 7.62 seconds Build w/ext ELL - Make FAIL 132.10 seconds Details ############################## Test: CheckPatch - PASS Desc: Run checkpatch.pl script with rule in .checkpatch.conf ############################## Test: GitLint - PASS Desc: Run gitlint with rule in .gitlint ############################## Test: Prep - Setup ELL - PASS Desc: Clone, build, and install ELL ############################## Test: Build - Prep - PASS Desc: Prepare environment for build ############################## Test: Build - Configure - PASS Desc: Configure the BlueZ source tree ############################## Test: Build - Make - FAIL Desc: Build the BlueZ source tree Output: plugins/admin.c: In function ‘admin_policy_destroy’: plugins/admin.c:90:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 90 | char *path = adapter_get_path(admin_policy->adapter); | ^~~~~~~~~~~~~~~~ plugins/admin.c:97:7: error: ‘MOCK_ADMIN_POLICY_INTERFACE’ undeclared (first use in this function); did you mean ‘ADMIN_POLICY_SET_INTERFACE’? 97 | MOCK_ADMIN_POLICY_INTERFACE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | ADMIN_POLICY_SET_INTERFACE plugins/admin.c:97:7: note: each undeclared identifier is reported only once for each function it appears in plugins/admin.c: At top level: plugins/admin.c:603:12: error: initialization of ‘void (*)(struct btd_adapter *)’ from incompatible pointer type ‘void (*)(void)’ [-Werror=incompatible-pointer-types] 603 | .remove = admin_policy_remove, | ^~~~~~~~~~~~~~~~~~~ plugins/admin.c:603:12: note: (near initialization for ‘admin_policy_driver.remove’) cc1: all warnings being treated as errors make[1]: *** [Makefile:8456: plugins/bluetoothd-admin.o] Error 1 make: *** [Makefile:4151: all] Error 2 ############################## Test: Make Check - FAIL Desc: Run 'make check' Output: plugins/admin.c: In function ‘admin_policy_destroy’: plugins/admin.c:90:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 90 | char *path = adapter_get_path(admin_policy->adapter); | ^~~~~~~~~~~~~~~~ plugins/admin.c:97:7: error: ‘MOCK_ADMIN_POLICY_INTERFACE’ undeclared (first use in this function); did you mean ‘ADMIN_POLICY_SET_INTERFACE’? 97 | MOCK_ADMIN_POLICY_INTERFACE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | ADMIN_POLICY_SET_INTERFACE plugins/admin.c:97:7: note: each undeclared identifier is reported only once for each function it appears in plugins/admin.c: At top level: plugins/admin.c:603:12: error: initialization of ‘void (*)(struct btd_adapter *)’ from incompatible pointer type ‘void (*)(void)’ [-Werror=incompatible-pointer-types] 603 | .remove = admin_policy_remove, | ^~~~~~~~~~~~~~~~~~~ plugins/admin.c:603:12: note: (near initialization for ‘admin_policy_driver.remove’) cc1: all warnings being treated as errors make[1]: *** [Makefile:8456: plugins/bluetoothd-admin.o] Error 1 make: *** [Makefile:10443: check] Error 2 ############################## Test: Make Distcheck - PASS Desc: Run distcheck to check the distribution ############################## Test: Build w/ext ELL - Configure - PASS Desc: Configure BlueZ source with '--enable-external-ell' configuration ############################## Test: Build w/ext ELL - Make - FAIL Desc: Build BlueZ source with '--enable-external-ell' configuration Output: plugins/admin.c: In function ‘admin_policy_destroy’: plugins/admin.c:90:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 90 | char *path = adapter_get_path(admin_policy->adapter); | ^~~~~~~~~~~~~~~~ plugins/admin.c:97:7: error: ‘MOCK_ADMIN_POLICY_INTERFACE’ undeclared (first use in this function); did you mean ‘ADMIN_POLICY_SET_INTERFACE’? 97 | MOCK_ADMIN_POLICY_INTERFACE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | ADMIN_POLICY_SET_INTERFACE plugins/admin.c:97:7: note: each undeclared identifier is reported only once for each function it appears in plugins/admin.c: At top level: plugins/admin.c:603:12: error: initialization of ‘void (*)(struct btd_adapter *)’ from incompatible pointer type ‘void (*)(void)’ [-Werror=incompatible-pointer-types] 603 | .remove = admin_policy_remove, | ^~~~~~~~~~~~~~~~~~~ plugins/admin.c:603:12: note: (near initialization for ‘admin_policy_driver.remove’) cc1: all warnings being treated as errors make[1]: *** [Makefile:8456: plugins/bluetoothd-admin.o] Error 1 make: *** [Makefile:4151: all] Error 2 --- Regards, Linux Bluetooth
diff --git a/plugins/admin.c b/plugins/admin.c index 02fec04568ba..9440581409fa 100644 --- a/plugins/admin.c +++ b/plugins/admin.c @@ -85,6 +85,19 @@ static void admin_policy_free(void *data) g_free(admin_policy); } +static void admin_policy_destroy(struct btd_admin_policy *admin_policy) +{ + char *path = adapter_get_path(admin_policy->adapter); + + g_dbus_unregister_interface(dbus_conn, path, + ADMIN_POLICY_SET_INTERFACE); + g_dbus_unregister_interface(dbus_conn, path, + ADMIN_POLICY_STATUS_INTERFACE); + g_dbus_unregister_interface(dbus_conn, path, + MOCK_ADMIN_POLICY_INTERFACE); + admin_policy_free(admin_policy); +} + static bool uuid_match(const void *data, const void *match_data) { const bt_uuid_t *uuid = data; @@ -492,7 +505,7 @@ static int admin_policy_adapter_probe(struct btd_adapter *adapter) if (!g_dbus_register_interface(dbus_conn, adapter_path, ADMIN_POLICY_SET_INTERFACE, admin_policy_adapter_methods, NULL, - NULL, policy_data, admin_policy_free)) { + NULL, policy_data, NULL)) { btd_error(policy_data->adapter_id, "Admin Policy Set interface init failed on path %s", adapter_path); @@ -506,7 +519,7 @@ static int admin_policy_adapter_probe(struct btd_adapter *adapter) ADMIN_POLICY_STATUS_INTERFACE, NULL, NULL, admin_policy_adapter_properties, - policy_data, admin_policy_free)) { + policy_data, NULL)) { btd_error(policy_data->adapter_id, "Admin Policy Status interface init failed on path %s", adapter_path); @@ -574,10 +587,24 @@ static void admin_policy_device_removed(struct btd_adapter *adapter, unregister_device_data(data, NULL); } +static void admin_policy_remove(void) +{ + DBG(""); + + queue_foreach(devices, unregister_device_data, NULL); + queue_destroy(devices, g_free); + + if (policy_data) { + admin_policy_destroy(policy_data); + policy_data = NULL; + } +} + static struct btd_adapter_driver admin_policy_driver = { .name = "admin_policy", .probe = admin_policy_adapter_probe, .resume = NULL, + .remove = admin_policy_remove, .device_resolved = admin_policy_device_added, .device_removed = admin_policy_device_removed }; @@ -597,11 +624,7 @@ static void admin_exit(void) DBG(""); btd_unregister_adapter_driver(&admin_policy_driver); - queue_foreach(devices, unregister_device_data, NULL); - queue_destroy(devices, g_free); - - if (policy_data) - admin_policy_free(policy_data); + admin_policy_remove(); } BLUETOOTH_PLUGIN_DEFINE(admin, VERSION,