diff options
Diffstat (limited to 'lib/genalloc.c')
-rw-r--r-- | lib/genalloc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/genalloc.c b/lib/genalloc.c index 144fe6b1a03e..ca06adc4f445 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c | |||
@@ -194,7 +194,7 @@ int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phy | |||
194 | chunk->phys_addr = phys; | 194 | chunk->phys_addr = phys; |
195 | chunk->start_addr = virt; | 195 | chunk->start_addr = virt; |
196 | chunk->end_addr = virt + size - 1; | 196 | chunk->end_addr = virt + size - 1; |
197 | atomic_set(&chunk->avail, size); | 197 | atomic_long_set(&chunk->avail, size); |
198 | 198 | ||
199 | spin_lock(&pool->lock); | 199 | spin_lock(&pool->lock); |
200 | list_add_rcu(&chunk->next_chunk, &pool->chunks); | 200 | list_add_rcu(&chunk->next_chunk, &pool->chunks); |
@@ -304,7 +304,7 @@ unsigned long gen_pool_alloc_algo(struct gen_pool *pool, size_t size, | |||
304 | nbits = (size + (1UL << order) - 1) >> order; | 304 | nbits = (size + (1UL << order) - 1) >> order; |
305 | rcu_read_lock(); | 305 | rcu_read_lock(); |
306 | list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) { | 306 | list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) { |
307 | if (size > atomic_read(&chunk->avail)) | 307 | if (size > atomic_long_read(&chunk->avail)) |
308 | continue; | 308 | continue; |
309 | 309 | ||
310 | start_bit = 0; | 310 | start_bit = 0; |
@@ -324,7 +324,7 @@ retry: | |||
324 | 324 | ||
325 | addr = chunk->start_addr + ((unsigned long)start_bit << order); | 325 | addr = chunk->start_addr + ((unsigned long)start_bit << order); |
326 | size = nbits << order; | 326 | size = nbits << order; |
327 | atomic_sub(size, &chunk->avail); | 327 | atomic_long_sub(size, &chunk->avail); |
328 | break; | 328 | break; |
329 | } | 329 | } |
330 | rcu_read_unlock(); | 330 | rcu_read_unlock(); |
@@ -390,7 +390,7 @@ void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size) | |||
390 | remain = bitmap_clear_ll(chunk->bits, start_bit, nbits); | 390 | remain = bitmap_clear_ll(chunk->bits, start_bit, nbits); |
391 | BUG_ON(remain); | 391 | BUG_ON(remain); |
392 | size = nbits << order; | 392 | size = nbits << order; |
393 | atomic_add(size, &chunk->avail); | 393 | atomic_long_add(size, &chunk->avail); |
394 | rcu_read_unlock(); | 394 | rcu_read_unlock(); |
395 | return; | 395 | return; |
396 | } | 396 | } |
@@ -464,7 +464,7 @@ size_t gen_pool_avail(struct gen_pool *pool) | |||
464 | 464 | ||
465 | rcu_read_lock(); | 465 | rcu_read_lock(); |
466 | list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) | 466 | list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) |
467 | avail += atomic_read(&chunk->avail); | 467 | avail += atomic_long_read(&chunk->avail); |
468 | rcu_read_unlock(); | 468 | rcu_read_unlock(); |
469 | return avail; | 469 | return avail; |
470 | } | 470 | } |