summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-06-09 11:38:44 +0000
committerMarcel Holtmann <marcel@holtmann.org>2008-06-09 11:38:44 +0000
commitfad3b8ad7a07de0c96c34b9d624ec174c2754817 (patch)
treefdb0eaeaa11a7492f1fbf3b7cf824a9b8322c614
parentb080c85efd00dce48ca9181090d3e74326b984e0 (diff)
Fix duplicate driver probing
-rw-r--r--hcid/device.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/hcid/device.c b/hcid/device.c
index ef29f368..15bb41a1 100644
--- a/hcid/device.c
+++ b/hcid/device.c
@@ -1142,14 +1142,16 @@ void device_probe_drivers(struct device *device)
}
if (do_probe == TRUE && !g_slist_find_custom(device->drivers,
- driver->name, (GCompareFunc) strcmp)) {
+ driver, (GCompareFunc) strcmp)) {
err = driver->probe(&device->dev);
- if (err < 0)
+ if (err < 0) {
error("probe failed for driver %s",
driver->name);
- else
- device->drivers = g_slist_append(device->drivers,
- driver);
+ continue;
+ }
+
+ device->drivers = g_slist_append(device->drivers,
+ driver);
}
}
}