Lines Matching refs:uc_pool
50 struct uncached_pool *uc_pool = (struct uncached_pool *)data;
55 atomic_inc(&uc_pool->status);
62 struct uncached_pool *uc_pool = (struct uncached_pool *)data;
66 atomic_inc(&uc_pool->status);
79 static int uncached_add_chunk(struct uncached_pool *uc_pool, int nid)
82 int status, i, nchunks_added = uc_pool->nchunks_added;
85 if (mutex_lock_interruptible(&uc_pool->add_chunk_mutex) != 0)
88 if (uc_pool->nchunks_added > nchunks_added) {
90 mutex_unlock(&uc_pool->add_chunk_mutex);
94 if (uc_pool->nchunks_added >= MAX_CONVERTED_CHUNKS_PER_NODE) {
95 mutex_unlock(&uc_pool->add_chunk_mutex);
104 mutex_unlock(&uc_pool->add_chunk_mutex);
125 atomic_set(&uc_pool->status, 0);
126 status = smp_call_function(uncached_ipi_visibility, uc_pool,
128 if (status || atomic_read(&uc_pool->status))
148 atomic_set(&uc_pool->status, 0);
149 status = smp_call_function(uncached_ipi_mc_drain, uc_pool, 0, 1);
150 if (status || atomic_read(&uc_pool->status))
157 status = gen_pool_add(uc_pool->pool, uc_addr, IA64_GRANULE_SIZE, nid);
161 uc_pool->nchunks_added++;
162 mutex_unlock(&uc_pool->add_chunk_mutex);
171 mutex_unlock(&uc_pool->add_chunk_mutex);
188 struct uncached_pool *uc_pool;
201 uc_pool = &uncached_pools[nid];
202 if (uc_pool->pool == NULL)
205 uc_addr = gen_pool_alloc(uc_pool->pool, PAGE_SIZE);
208 } while (uncached_add_chunk(uc_pool, nid) == 0);