A USB control error must be < 0
diff --git a/usbutils.c b/usbutils.c
index 5ab6e5e..6025fa8 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -23,7 +23,7 @@
/* Timeout errors on writes are basically unrecoverable */
#define WRITENODEV(err) ((err) != LIBUSB_SUCCESS)
-#define NOCONTROLDEV(err) ((err) != LIBUSB_SUCCESS)
+#define NOCONTROLDEV(err) ((err) < 0 && (err) != LIBUSB_SUCCESS)
/*
* WARNING - these assume DEVLOCK(cgpu, pstate) is called first and