Set device_diff on work in get_work to not be missed with drivers that use get_work directly.
diff --git a/cgminer.c b/cgminer.c
index c0b8d2e..872dffe 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -5988,6 +5988,7 @@ struct work *get_work(struct thr_info *thr, const int thr_id)
work->thr_id = thr_id;
thread_reportin(thr);
work->mined = true;
+ work->device_diff = MIN(thr->cgpu->drv->max_diff, work->work_difficulty);
return work;
}
@@ -6341,7 +6342,6 @@ static void fill_queue(struct thr_info *mythr, struct cgpu_info *cgpu, struct de
if (need_work) {
struct work *work = get_work(mythr, thr_id);
- work->device_diff = MIN(drv->max_diff, work->work_difficulty);
wr_lock(&cgpu->qlock);
HASH_ADD_INT(cgpu->queued_work, id, work);
wr_unlock(&cgpu->qlock);