|
|
@ -3658,15 +3658,6 @@ static void rebuild_hash(struct work *work) |
|
|
|
scrypt_regenhash(work); |
|
|
|
scrypt_regenhash(work); |
|
|
|
else |
|
|
|
else |
|
|
|
regen_hash(work); |
|
|
|
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); |
|
|
|
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); |
|
|
|
cgtime(&tv_work_found); |
|
|
|
*work_nonce = htole32(nonce); |
|
|
|
*work_nonce = htole32(nonce); |
|
|
|
|
|
|
|
work->share_diff = 0; |
|
|
|
|
|
|
|
|
|
|
|
/* Do one last check before attempting to submit the work */ |
|
|
|
/* Do one last check before attempting to submit the work */ |
|
|
|
rebuild_hash(work); |
|
|
|
rebuild_hash(work); |
|
|
@ -6060,6 +6052,8 @@ bool submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce) |
|
|
|
goto out; |
|
|
|
goto out; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
work->share_diff = share_diff(work); |
|
|
|
|
|
|
|
|
|
|
|
mutex_lock(&stats_lock); |
|
|
|
mutex_lock(&stats_lock); |
|
|
|
total_diff1 += work->device_diff; |
|
|
|
total_diff1 += work->device_diff; |
|
|
|
thr->cgpu->diff1 += work->device_diff; |
|
|
|
thr->cgpu->diff1 += work->device_diff; |
|
|
|