Browse Source

Wrap result wrong tests in avalon scanhash in unlikely() and only consider a hash count of zero wrong if a restart wasn't issued.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
c62b985c04
  1. 5
      driver-avalon.c

5
driver-avalon.c

@ -908,7 +908,7 @@ static int64_t avalon_scanhash(struct thr_info *thr) @@ -908,7 +908,7 @@ static int64_t avalon_scanhash(struct thr_info *thr)
info->no_matching_work++;
result_wrong++;
if (result_wrong >= avalon_get_work_count)
if (unlikely(result_wrong >= avalon_get_work_count))
break;
if (opt_debug) {
@ -929,7 +929,8 @@ static int64_t avalon_scanhash(struct thr_info *thr) @@ -929,7 +929,8 @@ static int64_t avalon_scanhash(struct thr_info *thr)
elapsed.tv_sec, elapsed.tv_usec);
}
}
if (result_wrong >= avalon_get_work_count || hash_count == 0) {
if (unlikely(result_wrong >= avalon_get_work_count ||
(hash_count == 0 && ret != AVA_GETS_RESTART))) {
/* This means FPGA controller gave all wrong results, so
* try to reset the Avalon */
do_avalon_close(thr);

Loading…
Cancel
Save