|
|
|
@ -5515,6 +5515,16 @@ void submit_work_async(struct work *work_in, struct timeval *tv_work_found)
@@ -5515,6 +5515,16 @@ void submit_work_async(struct work *work_in, struct timeval *tv_work_found)
|
|
|
|
|
quit(1, "Failed to create submit_work_thread"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void inc_hw_errors(struct thr_info *thr) |
|
|
|
|
{ |
|
|
|
|
mutex_lock(&stats_lock); |
|
|
|
|
hw_errors++; |
|
|
|
|
thr->cgpu->hw_errors++; |
|
|
|
|
mutex_unlock(&stats_lock); |
|
|
|
|
|
|
|
|
|
thr->cgpu->drv->hw_error(thr); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static bool hashtest(struct thr_info *thr, struct work *work) |
|
|
|
|
{ |
|
|
|
|
uint32_t *data32 = (uint32_t *)(work->data); |
|
|
|
@ -5534,13 +5544,7 @@ static bool hashtest(struct thr_info *thr, struct work *work)
@@ -5534,13 +5544,7 @@ static bool hashtest(struct thr_info *thr, struct work *work)
|
|
|
|
|
applog(LOG_WARNING, "%s%d: invalid nonce - HW error", |
|
|
|
|
thr->cgpu->drv->name, thr->cgpu->device_id); |
|
|
|
|
|
|
|
|
|
mutex_lock(&stats_lock); |
|
|
|
|
hw_errors++; |
|
|
|
|
thr->cgpu->hw_errors++; |
|
|
|
|
mutex_unlock(&stats_lock); |
|
|
|
|
|
|
|
|
|
thr->cgpu->drv->hw_error(thr); |
|
|
|
|
|
|
|
|
|
inc_hw_errors(thr); |
|
|
|
|
goto out; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|