• Home
  • Raw
  • Download

Lines Matching refs:pool

27 	struct gen_pool *pool;  in gen_pool_create()  local
29 pool = kmalloc_node(sizeof(struct gen_pool), GFP_KERNEL, nid); in gen_pool_create()
30 if (pool != NULL) { in gen_pool_create()
31 rwlock_init(&pool->lock); in gen_pool_create()
32 INIT_LIST_HEAD(&pool->chunks); in gen_pool_create()
33 pool->min_alloc_order = min_alloc_order; in gen_pool_create()
35 return pool; in gen_pool_create()
49 int gen_pool_add(struct gen_pool *pool, unsigned long addr, size_t size, in gen_pool_add() argument
53 int nbits = size >> pool->min_alloc_order; in gen_pool_add()
65 write_lock(&pool->lock); in gen_pool_add()
66 list_add(&chunk->next_chunk, &pool->chunks); in gen_pool_add()
67 write_unlock(&pool->lock); in gen_pool_add()
80 void gen_pool_destroy(struct gen_pool *pool) in gen_pool_destroy() argument
84 int order = pool->min_alloc_order; in gen_pool_destroy()
88 list_for_each_safe(_chunk, _next_chunk, &pool->chunks) { in gen_pool_destroy()
98 kfree(pool); in gen_pool_destroy()
111 unsigned long gen_pool_alloc(struct gen_pool *pool, size_t size) in gen_pool_alloc() argument
116 int order = pool->min_alloc_order; in gen_pool_alloc()
124 read_lock(&pool->lock); in gen_pool_alloc()
125 list_for_each(_chunk, &pool->chunks) { in gen_pool_alloc()
151 read_unlock(&pool->lock); in gen_pool_alloc()
156 read_unlock(&pool->lock); in gen_pool_alloc()
169 void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size) in gen_pool_free() argument
174 int order = pool->min_alloc_order; in gen_pool_free()
179 read_lock(&pool->lock); in gen_pool_free()
180 list_for_each(_chunk, &pool->chunks) { in gen_pool_free()
194 read_unlock(&pool->lock); in gen_pool_free()