Lines Matching refs:uc_pool
49 struct uncached_pool *uc_pool = (struct uncached_pool *)data; in uncached_ipi_visibility() local
54 atomic_inc(&uc_pool->status); in uncached_ipi_visibility()
61 struct uncached_pool *uc_pool = (struct uncached_pool *)data; in uncached_ipi_mc_drain() local
65 atomic_inc(&uc_pool->status); in uncached_ipi_mc_drain()
78 static int uncached_add_chunk(struct uncached_pool *uc_pool, int nid) in uncached_add_chunk() argument
81 int status, i, nchunks_added = uc_pool->nchunks_added; in uncached_add_chunk()
84 if (mutex_lock_interruptible(&uc_pool->add_chunk_mutex) != 0) in uncached_add_chunk()
87 if (uc_pool->nchunks_added > nchunks_added) { in uncached_add_chunk()
89 mutex_unlock(&uc_pool->add_chunk_mutex); in uncached_add_chunk()
93 if (uc_pool->nchunks_added >= MAX_CONVERTED_CHUNKS_PER_NODE) { in uncached_add_chunk()
94 mutex_unlock(&uc_pool->add_chunk_mutex); in uncached_add_chunk()
104 mutex_unlock(&uc_pool->add_chunk_mutex); in uncached_add_chunk()
125 atomic_set(&uc_pool->status, 0); in uncached_add_chunk()
126 status = smp_call_function(uncached_ipi_visibility, uc_pool, 1); in uncached_add_chunk()
127 if (status || atomic_read(&uc_pool->status)) in uncached_add_chunk()
147 atomic_set(&uc_pool->status, 0); in uncached_add_chunk()
148 status = smp_call_function(uncached_ipi_mc_drain, uc_pool, 1); in uncached_add_chunk()
149 if (status || atomic_read(&uc_pool->status)) in uncached_add_chunk()
156 status = gen_pool_add(uc_pool->pool, uc_addr, IA64_GRANULE_SIZE, nid); in uncached_add_chunk()
160 uc_pool->nchunks_added++; in uncached_add_chunk()
161 mutex_unlock(&uc_pool->add_chunk_mutex); in uncached_add_chunk()
170 mutex_unlock(&uc_pool->add_chunk_mutex); in uncached_add_chunk()
188 struct uncached_pool *uc_pool; in uncached_alloc_page() local
201 uc_pool = &uncached_pools[nid]; in uncached_alloc_page()
202 if (uc_pool->pool == NULL) in uncached_alloc_page()
205 uc_addr = gen_pool_alloc(uc_pool->pool, in uncached_alloc_page()
209 } while (uncached_add_chunk(uc_pool, nid) == 0); in uncached_alloc_page()