# define libcfs_kmem_inc(ptr, size) \
do { \
- atomic64_add(size, &libcfs_kmem); \
+ atomic64_add((size), &libcfs_kmem); \
} while (0)
# define libcfs_kmem_dec(ptr, size) \
do { \
- atomic64_sub(size, &libcfs_kmem); \
+ atomic64_sub((size), &libcfs_kmem); \
} while (0)
# define libcfs_kmem_read() \
libcfs_kmem_read()); \
} else { \
libcfs_kmem_inc((ptr), (size)); \
- LIBCFS_MEM_MSG(ptr, size, name); \
+ LIBCFS_MEM_MSG(ptr, (size), name); \
} \
} while (0)
#define LIBCFS_FREE_PRE(ptr, size, name) \
libcfs_kmem_dec((ptr), (size)); \
- LIBCFS_MEM_MSG(ptr, size, name)
+ LIBCFS_MEM_MSG(ptr, (size), name)
/**
* allocate memory with GFP flags @mask
* default allocator
*/
#define LIBCFS_ALLOC(ptr, size) \
- LIBCFS_ALLOC_GFP(ptr, size, GFP_NOFS)
+ LIBCFS_ALLOC_GFP(ptr, (size), GFP_NOFS)
/**
* non-sleeping allocator
*/
#define LIBCFS_ALLOC_ATOMIC(ptr, size) \
- LIBCFS_ALLOC_GFP(ptr, size, GFP_ATOMIC)
+ LIBCFS_ALLOC_GFP(ptr, (size), GFP_ATOMIC)
/**
* allocate memory for specified CPU partition
/** default numa allocator */
#define LIBCFS_CPT_ALLOC(ptr, cptab, cpt, size) \
- LIBCFS_CPT_ALLOC_GFP(ptr, cptab, cpt, size, GFP_NOFS)
+ LIBCFS_CPT_ALLOC_GFP(ptr, (cptab), (cpt), (size), GFP_NOFS)
#define LIBCFS_FREE(ptr, size) \
do { \
"%s:%d\n", s, __FILE__, __LINE__); \
break; \
} \
- LIBCFS_FREE_PRE(ptr, size, "kfreed"); \
+ LIBCFS_FREE_PRE(ptr, (size), "kfreed"); \
if (unlikely(s > LIBCFS_VMALLOC_SIZE)) \
libcfs_vfree_atomic(ptr); \
else \
if (hs->hs_buckets != NULL)
return hs;
- LIBCFS_FREE(hs, offsetof(struct cfs_hash, hs_name[len]));
+ LIBCFS_FREE(hs, sizeof(struct cfs_hash) + len);
RETURN(NULL);
}
EXPORT_SYMBOL(cfs_hash_create);
0, CFS_HASH_NBKT(hs));
i = cfs_hash_with_bigname(hs) ?
CFS_HASH_BIGNAME_LEN : CFS_HASH_NAME_LEN;
- LIBCFS_FREE(hs, offsetof(struct cfs_hash, hs_name[i]));
+ LIBCFS_FREE(hs, sizeof(struct cfs_hash) + i);
EXIT;
}