Browse Source

Bugfix: modminer: Check that we have a valid fd before trying to start work

Luke Dashjr 13 years ago
parent
commit
e4b72e08e2
1 changed files with 9 additions and 0 deletions
  1. 9 0
      driver-modminer.c

+ 9 - 0
driver-modminer.c

@@ -404,6 +404,15 @@ fd_set fds;
 
 
 	mutex_lock(&modminer->device_mutex);
 	mutex_lock(&modminer->device_mutex);
 	fd = modminer->device_fd;
 	fd = modminer->device_fd;
+
+	if (unlikely(fd == -1)) {
+		if (!modminer_reopen(modminer)) {
+			mutex_unlock(&modminer->device_mutex);
+			return false;
+		}
+		fd = modminer->device_fd;
+	}
+
 	if (46 != write(fd, state->next_work_cmd, 46))
 	if (46 != write(fd, state->next_work_cmd, 46))
 		bailout2(LOG_ERR, "%s %u.%u: Error writing (start work)", modminer->api->name, modminer->device_id, fpgaid);
 		bailout2(LOG_ERR, "%s %u.%u: Error writing (start work)", modminer->api->name, modminer->device_id, fpgaid);
 	gettimeofday(&state->tv_workstart, NULL);
 	gettimeofday(&state->tv_workstart, NULL);