diff options
Diffstat (limited to 'lib/genalloc.c')
-rw-r--r-- | lib/genalloc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/genalloc.c b/lib/genalloc.c index b41dd90..bb1d323 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c @@ -79,7 +79,9 @@ gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phys, size_t size, int nid) { struct gen_pool_chunk *chunk; - size_t nbytes; + int nbits = size >> pool->min_alloc_order; + int nbytes = sizeof(struct gen_pool_chunk) + + BITS_TO_LONGS(nbits) * sizeof(long); if (WARN_ON(!virt || virt + size < virt || (virt & ((1 << pool->order) - 1)))) |