Browse Source

Free avalon->works in the event we call avalon_prepare on failure to initialise.

Con Kolivas 13 years ago
parent
commit
b2106b3aed
1 changed files with 5 additions and 1 deletions
  1. 5 1
      driver-avalon.c

+ 5 - 1
driver-avalon.c

@@ -645,10 +645,14 @@ static bool avalon_prepare(struct thr_info *thr)
 	struct avalon_info *info = avalon_infos[avalon->device_id];
 	struct timeval now;
 
+	free(avalon->works);
 	avalon->works = calloc(info->miner_count * sizeof(struct work *), 4);
 	if (!avalon->works)
 		quit(1, "Failed to calloc avalon works in avalon_prepare");
-	__avalon_init(avalon);
+	if (avalon->device_fd == -1)
+		avalon_init(avalon);
+	else
+		__avalon_init(avalon);
 
 	gettimeofday(&now, NULL);
 	get_datestamp(avalon->init, &now);