Flag devices that have never started and don't allow enabling of devices without restarting them.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
diff --git a/main.c b/main.c
index a8cfc55..c58d23e 100644
--- a/main.c
+++ b/main.c
@@ -3170,6 +3170,9 @@ retry:
case LIFE_DEAD:
wlog("DEAD reported in %s", checkin);
break;
+ case LIFE_NOSTART:
+ wlog("Never started");
+ break;
}
wlog("\n");
}
@@ -3196,6 +3199,11 @@ retry:
if (dev_from_id(i) != selected)
continue;
thr = &thr_info[i];
+ if (thr->cgpu->status != LIFE_WELL) {
+ wlogprint("Must restart device before enabling it");
+ gpu_devices[selected] = false;
+ goto retry;
+ }
if (opt_debug)
applog(LOG_DEBUG, "Pushing ping to thread %d", thr->id);
@@ -5460,6 +5468,7 @@ int main (int argc, char *argv[])
free(buf);
}
gpu_devices[gpu] = false;
+ cgpu->status = LIFE_NOSTART;
continue;
}
applog(LOG_INFO, "initCl() finished. Found %s", name);
diff --git a/miner.h b/miner.h
index 0bd78b4..0567139 100644
--- a/miner.h
+++ b/miner.h
@@ -153,6 +153,7 @@ enum alive {
LIFE_WELL,
LIFE_SICK,
LIFE_DEAD,
+ LIFE_NOSTART
};
#ifdef HAVE_ADL