Diff between 8ae5c861adf788893fffaf74c1c44a3c9d35a4af and 4cae55cbe65c1decd61e98a61bfa2467b52ac947

Changed Files

File Additions Deletions Status
src/adapter.c +3 -7 modified
src/adapter.h +0 -1 modified
src/mgmt.c +0 -2 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 562b660..cc9704f 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3787,14 +3787,8 @@ static struct btd_adapter *adapter_register(int id, const bdaddr_t *bdaddr,
 	return btd_adapter_ref(adapter);
 }
 
-int adapter_unregister(int id)
+static int adapter_unregister(struct btd_adapter *adapter)
 {
-	struct btd_adapter *adapter;
-
-	adapter = adapter_find_by_id(id);
-	if (!adapter)
-		return -ENOENT;
-
 	DBG("Unregister path: %s", adapter->path);
 
 	adapters = g_slist_remove(adapters, adapter);
@@ -3874,6 +3868,8 @@ static void index_removed(uint16_t index, uint16_t length, const void *param,
 		warn("mgmt_index_removed for a non-existent adapter");
 		return;
 	}
+
+	adapter_unregister(adapter);
 }
 
 static void read_index_list_complete(uint16_t index, uint8_t status,
diff --git a/src/adapter.h b/src/adapter.h
index 7761efb..73b356f 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -79,7 +79,6 @@ struct btd_adapter *adapter_find(const bdaddr_t *sba);
 struct btd_adapter *adapter_find_by_id(int id);
 struct btd_adapter *adapter_get_default(void);
 void adapter_foreach(adapter_cb func, gpointer user_data);
-int adapter_unregister(int id);
 
 void btd_adapter_start(struct btd_adapter *adapter);
 
diff --git a/src/mgmt.c b/src/mgmt.c
index 2ea89e1..caaf2f6 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
@@ -214,8 +214,6 @@ static void remove_controller(uint16_t index)
 
 	DBG("Removing controller %u", index);
 
-	adapter_unregister(index);
-
 	g_slist_free_full(controllers[index].pending_uuids, g_free);
 	controllers[index].pending_uuids = NULL;