From c1aba05506698b5fd78d5edd0cd2044d809a72f1 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Thu, 26 Sep 2013 20:51:47 +1000 Subject: [PATCH] Only set share diff if we've confirmed it's a share first. --- cgminer.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/cgminer.c b/cgminer.c index 43bc0030..49931b66 100644 --- a/cgminer.c +++ b/cgminer.c @@ -3658,15 +3658,6 @@ static void rebuild_hash(struct work *work) scrypt_regenhash(work); else regen_hash(work); - - work->share_diff = share_diff(work); - if (unlikely(work->share_diff >= current_diff)) { - work->block = true; - work->pool->solved++; - found_blocks++; - work->mandatory = true; - applog(LOG_NOTICE, "Found block for pool %d!", work->pool->pool_no); - } } static bool cnx_needed(struct pool *pool); @@ -6045,6 +6036,7 @@ bool submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce) cgtime(&tv_work_found); *work_nonce = htole32(nonce); + work->share_diff = 0; /* Do one last check before attempting to submit the work */ rebuild_hash(work); @@ -6060,6 +6052,8 @@ bool submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce) goto out; } + work->share_diff = share_diff(work); + mutex_lock(&stats_lock); total_diff1 += work->device_diff; thr->cgpu->diff1 += work->device_diff;