Revert "Loop in bitforce scanhash till end nonce reaches full nonce range." This reverts commit e10aa2092bcb2f1e5b313c5bacb8853b00393126.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
diff --git a/driver-bitforce.c b/driver-bitforce.c
index 58a0805..f42faa3 100644
--- a/driver-bitforce.c
+++ b/driver-bitforce.c
@@ -420,52 +420,50 @@ static uint64_t bitforce_scanhash(struct thr_info *thr, struct work *work, uint6
struct cgpu_info *bitforce = thr->cgpu;
unsigned int sleep_time;
struct timeval tdiff;
- uint64_t ret = 1;
+ uint64_t ret;
- while (bitforce->end_nonce < 0xffffffff) {
- bitforce->wait_ms = 0;
- ret = bitforce_send_work(thr, work);
+ bitforce->wait_ms = 0;
+ ret = bitforce_send_work(thr, work);
- if (!bitforce->nonce_range) {
- /* Initially wait 2/3 of the average cycle time so we can request more
- work before full scan is up */
- sleep_time = (2 * bitforce->sleep_ms) / 3;
- ms_to_timeval(sleep_time, &tdiff);
- if (!restart_wait(&tdiff))
- return 1;
+ if (!bitforce->nonce_range) {
+ /* Initially wait 2/3 of the average cycle time so we can request more
+ work before full scan is up */
+ sleep_time = (2 * bitforce->sleep_ms) / 3;
+ ms_to_timeval(sleep_time, &tdiff);
+ if (!restart_wait(&tdiff))
+ return 1;
- bitforce->wait_ms += sleep_time;
- queue_request(thr, false);
+ bitforce->wait_ms += sleep_time;
+ queue_request(thr, false);
- /* Now wait athe final 1/3rd; no bitforce should be finished by now */
- sleep_time = bitforce->sleep_ms - sleep_time;
- ms_to_timeval(sleep_time, &tdiff);
- if (!restart_wait(&tdiff))
- return 1;
-
- bitforce->wait_ms += sleep_time;
- } else {
- sleep_time = bitforce->sleep_ms;
- ms_to_timeval(sleep_time, &tdiff);
- if (!restart_wait(&tdiff))
- return 1;
- /* queue extra request once more than 2/3 is done */
- if (work->blk.nonce > 0xffffffff / 3 * 2)
- queue_request(thr, false);
- }
-
- if (ret)
- ret = bitforce_get_result(thr, work);
+ /* Now wait athe final 1/3rd; no bitforce should be finished by now */
+ sleep_time = bitforce->sleep_ms - sleep_time;
+ ms_to_timeval(sleep_time, &tdiff);
+ if (!restart_wait(&tdiff))
+ return 1;
- if (!ret) {
- applog(LOG_ERR, "BFL%i: Comms error", bitforce->device_id);
- bitforce->device_last_not_well = time(NULL);
- bitforce->device_not_well_reason = REASON_DEV_COMMS_ERROR;
- bitforce->dev_comms_error_count++;
- /* empty read buffer */
- biforce_clear_buffer(bitforce);
+ bitforce->wait_ms += sleep_time;
+ } else {
+ sleep_time = bitforce->sleep_ms;
+ ms_to_timeval(sleep_time, &tdiff);
+ if (!restart_wait(&tdiff))
return 1;
- }
+ /* queue extra request once more than 2/3 is done */
+ if (work->blk.nonce > 0xffffffff / 3 * 2)
+ queue_request(thr, false);
+ }
+
+ if (ret)
+ ret = bitforce_get_result(thr, work);
+
+ if (!ret) {
+ ret = 1;
+ applog(LOG_ERR, "BFL%i: Comms error", bitforce->device_id);
+ bitforce->device_last_not_well = time(NULL);
+ bitforce->device_not_well_reason = REASON_DEV_COMMS_ERROR;
+ bitforce->dev_comms_error_count++;
+ /* empty read buffer */
+ biforce_clear_buffer(bitforce);
}
return ret;
}