|
@@ -292,7 +292,7 @@ unsigned long gen_pool_alloc_algo(struct gen_pool *pool, size_t size,
|
|
|
struct gen_pool_chunk *chunk;
|
|
|
unsigned long addr = 0;
|
|
|
int order = pool->min_alloc_order;
|
|
|
- int nbits, start_bit = 0, end_bit, remain;
|
|
|
+ int nbits, start_bit, end_bit, remain;
|
|
|
|
|
|
#ifndef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
|
BUG_ON(in_nmi());
|
|
@@ -307,6 +307,7 @@ unsigned long gen_pool_alloc_algo(struct gen_pool *pool, size_t size,
|
|
|
if (size > atomic_read(&chunk->avail))
|
|
|
continue;
|
|
|
|
|
|
+ start_bit = 0;
|
|
|
end_bit = chunk_size(chunk) >> order;
|
|
|
retry:
|
|
|
start_bit = algo(chunk->bits, end_bit, start_bit,
|