Lines Matching full:mem
77 static void cma_add_to_cma_mem_list(struct cma *cma, struct cma_mem *mem) in cma_add_to_cma_mem_list() argument
80 hlist_add_head(&mem->node, &cma->mem_head); in cma_add_to_cma_mem_list()
86 struct cma_mem *mem = NULL; in cma_get_entry_from_list() local
90 mem = hlist_entry(cma->mem_head.first, struct cma_mem, node); in cma_get_entry_from_list()
91 hlist_del_init(&mem->node); in cma_get_entry_from_list()
95 return mem; in cma_get_entry_from_list()
100 struct cma_mem *mem = NULL; in cma_free_mem() local
103 mem = cma_get_entry_from_list(cma); in cma_free_mem()
104 if (mem == NULL) in cma_free_mem()
107 if (mem->n <= count) { in cma_free_mem()
108 cma_release(cma, mem->p, mem->n); in cma_free_mem()
109 count -= mem->n; in cma_free_mem()
110 kfree(mem); in cma_free_mem()
112 cma_release(cma, mem->p, count); in cma_free_mem()
113 mem->p += count; in cma_free_mem()
114 mem->n -= count; in cma_free_mem()
116 cma_add_to_cma_mem_list(cma, mem); in cma_free_mem()
119 cma_add_to_cma_mem_list(cma, mem); in cma_free_mem()
139 struct cma_mem *mem; in cma_alloc_mem() local
142 mem = kzalloc(sizeof(*mem), GFP_KERNEL); in cma_alloc_mem()
143 if (!mem) in cma_alloc_mem()
148 kfree(mem); in cma_alloc_mem()
152 mem->p = p; in cma_alloc_mem()
153 mem->n = count; in cma_alloc_mem()
155 cma_add_to_cma_mem_list(cma, mem); in cma_alloc_mem()