diff --git a/driver-avalon.c b/driver-avalon.c index 3d670765..dd762b86 100644 --- a/driver-avalon.c +++ b/driver-avalon.c @@ -670,7 +670,8 @@ static bool avalon_prepare(struct thr_info *thr) struct timeval now; free(avalon->works); - avalon->works = calloc(info->miner_count * sizeof(struct work *), 4); + avalon->works = calloc(info->miner_count * sizeof(struct work *), + AVALON_ARRAY_SIZE); if (!avalon->works) quit(1, "Failed to calloc avalon works in avalon_prepare"); if (avalon->device_fd == -1) @@ -797,7 +798,7 @@ static bool avalon_fill(struct cgpu_info *avalon) static void avalon_rotate_array(struct cgpu_info *avalon) { avalon->queued = 0; - if (++avalon->work_array > 3) + if (++avalon->work_array >= AVALON_ARRAY_SIZE) avalon->work_array = 0; } diff --git a/driver-avalon.h b/driver-avalon.h index 93c2e60c..cdbd0d28 100644 --- a/driver-avalon.h +++ b/driver-avalon.h @@ -99,6 +99,7 @@ struct avalon_info { #define AVALON_WRITE_SIZE (sizeof(struct avalon_task)) #define AVALON_READ_SIZE (sizeof(struct avalon_result)) +#define AVALON_ARRAY_SIZE 4 #define AVA_GETS_ERROR -1 #define AVA_GETS_OK 0