diff --git a/src/block_allocator.c b/src/block_allocator.c index 59f13024b88c2e166277af660d626973bc6cf21c..f59dab0e6681d10bb9ac5f32350b80efd74eb934 100644 --- a/src/block_allocator.c +++ b/src/block_allocator.c @@ -127,7 +127,8 @@ PMOD_EXPORT void ba_low_init_aligned(struct block_allocator * a) { a->l.doffset = sizeof(struct ba_page); } - a->l.blocks = round_up32(a->l.blocks); + if (a->l.blocks & (a->l.blocks - 1)) + a->l.blocks = round_up32(a->l.blocks); a->l.block_size = block_size; a->l.offset = block_size * (a->l.blocks-1); }