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 | |
| parent | b080c85efd00dce48ca9181090d3e74326b984e0 (diff) | |
Fix duplicate driver probing
| -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);  		}  	}  }  | 
