smalloc: use SMALLOC_BPI instead of SMALLOC_BPB in add_pool()
authorVincent Fu <vincent.fu@wdc.com>
Tue, 3 Sep 2019 17:44:45 +0000 (13:44 -0400)
committerJens Axboe <axboe@kernel.dk>
Tue, 3 Sep 2019 18:32:01 +0000 (12:32 -0600)
Change the calculation of free_blocks in add_pool() to use SMALLOC_BPI
instead of SMALLOC_BPB. These two constants are coincidentally the same
on Linux and Windows but SMALLOC_BPI is the correct one to use.
free_blocks is the number of available blocks of size SMALLOC_BPB. It is
the product of the number of unsigned integers in the bitmap
(bitmap_blocks) and the number of bits per unsigned integer
(SMALLOC_BPI).

Signed-off-by: Jens Axboe <axboe@kernel.dk>
smalloc.c

index 39bf47a..fa00f0e 100644 (file)
--- a/smalloc.c
+++ b/smalloc.c
@@ -173,7 +173,7 @@ static bool add_pool(struct pool *pool, unsigned int alloc_size)
        pool->mmap_size = alloc_size;
 
        pool->nr_blocks = bitmap_blocks;
-       pool->free_blocks = bitmap_blocks * SMALLOC_BPB;
+       pool->free_blocks = bitmap_blocks * SMALLOC_BPI;
 
        mmap_flags = OS_MAP_ANON;
 #ifdef CONFIG_ESX