Skip to content

Commit

Permalink
Align_len in all alloc helper calls
Browse files Browse the repository at this point in the history
  • Loading branch information
ckolivas committed Mar 4, 2015
1 parent 8d75ac9 commit d81595b
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 35 deletions.
20 changes: 6 additions & 14 deletions driver-avalon2.c
@@ -1,5 +1,5 @@
/*
* Copyright 2013-2014 Con Kolivas <kernel@kolivas.org>
* Copyright 2013-2015 Con Kolivas <kernel@kolivas.org>
* Copyright 2012-2014 Xiangfu <xiangfu@openmobilefree.com>
* Copyright 2012 Luke Dashjr
* Copyright 2012 Andrew Smith
Expand Down Expand Up @@ -693,9 +693,7 @@ static struct cgpu_info *avalon2_detect_one(struct libusb_device *dev, struct us
applog(LOG_INFO, "%s %d: Found at %s", avalon2->drv->name, avalon2->device_id,
avalon2->device_path);

avalon2->device_data = calloc(sizeof(struct avalon2_info), 1);
if (unlikely(!(avalon2->device_data)))
quit(1, "Failed to calloc avalon2_info");
avalon2->device_data = cgcalloc(sizeof(struct avalon2_info), 1);

info = avalon2->device_data;

Expand Down Expand Up @@ -795,22 +793,16 @@ static void copy_pool_stratum(struct avalon2_info *info, struct pool *pool)
free(pool_stratum->nonce1);
free(pool_stratum->coinbase);

align_len(&coinbase_len);
pool_stratum->coinbase = calloc(coinbase_len, 1);
if (unlikely(!pool_stratum->coinbase))
quit(1, "Failed to calloc pool_stratum coinbase in avalon2");
pool_stratum->coinbase = cgcalloc(coinbase_len, 1);
memcpy(pool_stratum->coinbase, pool->coinbase, coinbase_len);


for (i = 0; i < pool_stratum->merkles; i++)
free(pool_stratum->swork.merkle_bin[i]);
if (merkles) {
pool_stratum->swork.merkle_bin = realloc(pool_stratum->swork.merkle_bin,
sizeof(char *) * merkles + 1);
pool_stratum->swork.merkle_bin = cgrealloc(pool_stratum->swork.merkle_bin,
sizeof(char *) * merkles + 1);
for (i = 0; i < merkles; i++) {
pool_stratum->swork.merkle_bin[i] = malloc(32);
if (unlikely(!pool_stratum->swork.merkle_bin[i]))
quit(1, "Failed to malloc pool_stratum swork merkle_bin");
pool_stratum->swork.merkle_bin[i] = cgmalloc(32);
memcpy(pool_stratum->swork.merkle_bin[i], pool->swork.merkle_bin[i], 32);
}
}
Expand Down
1 change: 0 additions & 1 deletion driver-avalon4.c
Expand Up @@ -1143,7 +1143,6 @@ static void copy_pool_stratum(struct pool *pool_stratum, struct pool *pool)
free(pool_stratum->nonce1);
free(pool_stratum->coinbase);

align_len(&coinbase_len);
pool_stratum->coinbase = cgcalloc(coinbase_len, 1);
memcpy(pool_stratum->coinbase, pool->coinbase, coinbase_len);

Expand Down
18 changes: 5 additions & 13 deletions driver-hashratio.c
Expand Up @@ -609,9 +609,7 @@ static struct cgpu_info *hashratio_detect_one(struct libusb_device *dev, struct
applog(LOG_INFO, "%s%d: Found at %s", hashratio->drv->name, hashratio->device_id,
hashratio->device_path);

hashratio->device_data = calloc(sizeof(struct hashratio_info), 1);
if (unlikely(!(hashratio->device_data)))
quit(1, "Failed to malloc hashratio_info");
hashratio->device_data = cgcalloc(sizeof(struct hashratio_info), 1);

info = hashratio->device_data;

Expand Down Expand Up @@ -657,22 +655,16 @@ static void copy_pool_stratum(struct hashratio_info *info, struct pool *pool)
free(pool_stratum->nonce1);
free(pool_stratum->coinbase);

align_len(&coinbase_len);
pool_stratum->coinbase = calloc(coinbase_len, 1);
if (unlikely(!pool_stratum->coinbase))
quit(1, "Failed to calloc pool_stratum coinbase in hashratio");
pool_stratum->coinbase = cgcalloc(coinbase_len, 1);
memcpy(pool_stratum->coinbase, pool->coinbase, coinbase_len);


for (i = 0; i < pool_stratum->merkles; i++)
free(pool_stratum->swork.merkle_bin[i]);
if (merkles) {
pool_stratum->swork.merkle_bin = realloc(pool_stratum->swork.merkle_bin,
sizeof(char *) * merkles + 1);
pool_stratum->swork.merkle_bin = cgrealloc(pool_stratum->swork.merkle_bin,
sizeof(char *) * merkles + 1);
for (i = 0; i < merkles; i++) {
pool_stratum->swork.merkle_bin[i] = malloc(32);
if (unlikely(!pool_stratum->swork.merkle_bin[i]))
quit(1, "Failed to malloc pool_stratum swork merkle_bin");
pool_stratum->swork.merkle_bin[i] = cgmalloc(32);
memcpy(pool_stratum->swork.merkle_bin[i], pool->swork.merkle_bin[i], 32);
}
}
Expand Down
7 changes: 7 additions & 0 deletions util.c
Expand Up @@ -253,6 +253,13 @@ int Inet_Pton(int af, const char *src, void *dst)
}
#endif

/* Align a size_t to 4 byte boundaries for fussy arches */
static inline void align_len(size_t *len)
{
if (*len % 4)
*len += 4 - (*len % 4);
}

void *_cgmalloc(size_t size, const char *file, const char *func, const int line)
{
void *ret;
Expand Down
7 changes: 0 additions & 7 deletions util.h
Expand Up @@ -175,11 +175,4 @@ void _cg_memcpy(void *dest, const void *src, unsigned int n, const char *file, c
#define cgsem_mswait(_sem, _timeout) _cgsem_mswait(_sem, _timeout, __FILE__, __func__, __LINE__)
#define cg_memcpy(dest, src, n) _cg_memcpy(dest, src, n, __FILE__, __func__, __LINE__)

/* Align a size_t to 4 byte boundaries for fussy arches */
static inline void align_len(size_t *len)
{
if (*len % 4)
*len += 4 - (*len % 4);
}

#endif /* __UTIL_H__ */

0 comments on commit d81595b

Please sign in to comment.