diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-06-09 11:38:44 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-06-09 11:38:44 +0000 |
commit | fad3b8ad7a07de0c96c34b9d624ec174c2754817 (patch) | |
tree | fdb0eaeaa11a7492f1fbf3b7cf824a9b8322c614 /hcid | |
parent | b080c85efd00dce48ca9181090d3e74326b984e0 (diff) |
Fix duplicate driver probing
Diffstat (limited to 'hcid')
-rw-r--r-- | hcid/device.c | 12 |
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); } } } |