Commit 3ef9fa3b88b60bd0d123a747b4ef6e75f0cd317b

ckolivas 2013-09-28T23:09:26

Attach the kernel driver on failure to usb init on linux.

diff --git a/usbutils.c b/usbutils.c
index 8fff847..7c33599 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -1505,7 +1505,7 @@ static int _usb_init(struct cgpu_info *cgpu, struct libusb_device *dev, struct u
 					"USB init, kernel detach ifinfo %d interface %d failed,"
 					" err %d in use? %s",
 					ifinfo, THISIF(found, ifinfo), err, devstr);
-				goto cldame;
+				goto nokernel;
 			}
 		}
 	}
@@ -1719,7 +1719,11 @@ reldame:
 		libusb_release_interface(cgusb->handle, THISIF(found, ifinfo));
 
 cldame:
+#ifdef LINUX
+	libusb_attach_kernel_driver(cgusb->handle, THISIF(found, ifinfo));
 
+nokernel:
+#endif
 	cg_wlock(&cgusb_fd_lock);
 	libusb_close(cgusb->handle);
 	cgusb->handle = NULL;