Lines Matching refs:rwa_state
47 } rwa_state = { variable
48 .mutex = __MUTEX_INITIALIZER(rwa_state.mutex),
49 .wqh = __WAIT_QUEUE_HEAD_INITIALIZER(rwa_state.wqh),
95 if (!rwa_state.available) in __rtas_work_area_alloc()
102 mutex_lock(&rwa_state.mutex); in __rtas_work_area_alloc()
103 wait_event(rwa_state.wqh, in __rtas_work_area_alloc()
104 (addr = gen_pool_alloc(rwa_state.gen_pool, size)) != 0); in __rtas_work_area_alloc()
105 mutex_unlock(&rwa_state.mutex); in __rtas_work_area_alloc()
107 area = mempool_alloc(&rwa_state.descriptor_pool, GFP_KERNEL); in __rtas_work_area_alloc()
116 if (!rwa_state.available) { in rtas_work_area_free()
121 gen_pool_free(rwa_state.gen_pool, (unsigned long)area->buf, area->size); in rtas_work_area_free()
122 mempool_free(area, &rwa_state.descriptor_pool); in rtas_work_area_free()
123 wake_up(&rwa_state.wqh); in rtas_work_area_free()
137 const phys_addr_t pa_start = __pa(rwa_state.arena); in rtas_work_area_allocator_init()
144 if (!rwa_state.arena) in rtas_work_area_allocator_init()
157 err = gen_pool_add(pool, (unsigned long)rwa_state.arena, in rtas_work_area_allocator_init()
162 err = mempool_init_kmalloc_pool(&rwa_state.descriptor_pool, 1, in rtas_work_area_allocator_init()
167 rwa_state.gen_pool = pool; in rtas_work_area_allocator_init()
168 rwa_state.available = true; in rtas_work_area_allocator_init()
208 rwa_state.arena = memblock_alloc_try_nid(size, align, min, limit, nid); in rtas_work_area_reserve_arena()