Commit f97e1ad25fa9898dbaf3392731d8134b6350f94f

Con Kolivas 2013-09-25T23:54:37

Check for work restart, breaking out early after usb reads in BF1.

diff --git a/driver-bitfury.c b/driver-bitfury.c
index 4648787..d263ecd 100644
--- a/driver-bitfury.c
+++ b/driver-bitfury.c
@@ -181,6 +181,8 @@ static int64_t bitfury_scanhash(struct thr_info *thr, struct work *work,
 	 * look for the results to prev work. */
 	usb_read_timeout(bitfury, info->buf, 512, &amount, 600, C_BFO_GETRES);
 	info->tot += amount;
+	if (unlikely(thr->work_restart))
+		goto cascade;
 
 	/* Now look for the bulk of the previous work results, they will come
 	 * in a batch following the first data. */
@@ -191,6 +193,9 @@ static int64_t bitfury_scanhash(struct thr_info *thr, struct work *work,
 		info->tot += amount;
 	};
 
+	if (unlikely(thr->work_restart))
+		goto cascade;
+
 	/* Send work */
 	usb_write(bitfury, buf, 45, &amount, C_BFO_REQWORK);
 	/* Get response acknowledging work */