Commit aed1e516db1ab2ce30cc2144398c2845e30069c1

Kano 2013-03-04T10:16:44

usb_cleanup() use correct locking mechanism

diff --git a/usbutils.c b/usbutils.c
index 27c67ce..6b2997e 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -1524,17 +1524,18 @@ int _usb_transfer(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRequest
 
 void usb_cleanup()
 {
+	struct cgpu_info *cgpu;
 	int i;
 
-	mutex_lock(&devices_lock);
 	for (i = 0; i < total_devices; i++) {
-		switch (devices[i]->drv->drv_id) {
+		cgpu = get_devices(i);
+		switch (cgpu->drv->drv_id) {
 			case DRIVER_BITFORCE:
 			case DRIVER_MODMINER:
-				release_cgpu(devices[i]);
+				release_cgpu(cgpu);
+				break;
 			default:
 				break;
 		}
 	}
-	mutex_unlock(&devices_lock);
 }