From fad3b8ad7a07de0c96c34b9d624ec174c2754817 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 9 Jun 2008 11:38:44 +0000 Subject: Fix duplicate driver probing --- hcid/device.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'hcid') 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); } } } -- cgit