diff options
| -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);  		}  	}  } | 
