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 */