Don't probe device drivers twice
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 5 Jan 2009 22:03:35 +0000 (23:03 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 5 Jan 2009 22:03:35 +0000 (23:03 +0100)
src/device.c

index 5bfd8e5..a3bbd89 100644 (file)
@@ -551,6 +551,9 @@ static void probe_driver(struct connman_element *element, gpointer user_data)
        if (element->device == NULL)
                return;
 
+       if (element->device->driver != NULL)
+               return;
+
        if (driver->probe(element->device) < 0)
                return;
 
@@ -1205,6 +1208,9 @@ static int device_probe(struct connman_element *element)
        if (device == NULL)
                return -ENODEV;
 
+       if (device->driver != NULL)
+               return -EALREADY;
+
        for (list = driver_list; list; list = list->next) {
                struct connman_device_driver *driver = list->data;