Ignore the device if it already created. This patch adds a consistency check to avoid registering the same service over basic rate and LE. --- src/adapter.c | 20 +++++++++----------- 1 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 8380a58..9a0f688 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2171,18 +2171,16 @@ static void create_stored_device_from_primary(char *key, char *value, struct btd_device *device; GSList *services, *uuids, *l; - l = g_slist_find_custom(adapter->devices, - key, (GCompareFunc) device_address_cmp); - if (l) - device = l->data; - else { - device = device_create(connection, adapter, key, DEVICE_TYPE_LE); - if (!device) - return; + if (g_slist_find_custom(adapter->devices, + key, (GCompareFunc) device_address_cmp)) + return; - device_set_temporary(device, FALSE); - adapter->devices = g_slist_append(adapter->devices, device); - } + device = device_create(connection, adapter, key, DEVICE_TYPE_LE); + if (!device) + return; + + device_set_temporary(device, FALSE); + adapter->devices = g_slist_append(adapter->devices, device); services = string_to_primary_list(value); if (services == NULL) -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html