Browse Source

Unconditionally test for many wrong results on avalon and reset to avoid passing a corrupt avalon result to temperature code.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
fdfb77e7c2
  1. 7
      driver-avalon.c

7
driver-avalon.c

@ -929,11 +929,10 @@ static int64_t avalon_scanhash(struct thr_info *thr) @@ -929,11 +929,10 @@ static int64_t avalon_scanhash(struct thr_info *thr)
elapsed.tv_sec, elapsed.tv_usec);
}
}
if (hash_count) {
if (avalon->results < AVALON_ARRAY_SIZE)
if (hash_count && avalon->results < AVALON_ARRAY_SIZE)
avalon->results++;
} else if (unlikely((result_wrong >= avalon_get_work_count ) ||
(ret != AVA_GETS_RESTART && --avalon->results < 0))) {
if (unlikely((result_wrong >= avalon_get_work_count) ||
(!hash_count && ret != AVA_GETS_RESTART && --avalon->results < 0))) {
/* Look for all invalid results, or consecutive failure
* to generate any results suggesting the FPGA
* controller has screwed up. */

Loading…
Cancel
Save