From fafd86313817b5dd5d4009722f73fe8730a223c7 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Thu, 26 Sep 2013 16:24:49 +1000 Subject: [PATCH] Use an array of offsets when checking nonces in bitfury_checkresults --- driver-bitfury.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/driver-bitfury.c b/driver-bitfury.c index b0b41a15..44e90e0e 100644 --- a/driver-bitfury.c +++ b/driver-bitfury.c @@ -163,23 +163,20 @@ static uint32_t decnonce(uint32_t in) return out; } +#define BT_OFFSETS 3 +const uint32_t bf_offsets[] = {0, -0x400000, -0x800000}; + static bool bitfury_checkresults(struct thr_info *thr, struct work *work, uint32_t nonce) { - uint32_t nonceoff; - - if (test_nonce(work, nonce)) { - submit_nonce(thr, work, nonce); - return true; - } - nonceoff = nonce - 0x400000; - if (test_nonce(work, nonceoff)) { - submit_nonce(thr, work, nonceoff); - return true; - } - nonceoff = nonce - 0x800000; - if (test_nonce(work, nonceoff)) { - submit_nonce(thr, work, nonceoff); - return true; + uint32_t offset_nonce; + int i; + + for (i = 0; i < BT_OFFSETS; i++) { + offset_nonce = nonce + bf_offsets[i]; + if (test_nonce(work, offset_nonce)) { + submit_nonce(thr, work, offset_nonce); + return true; + } } return false; }