Lines Matching refs:encl
85 struct sgx_encl *encl = page->encl; in sgx_reclaimer_age() local
90 idx = srcu_read_lock(&encl->srcu); in sgx_reclaimer_age()
92 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_reclaimer_age()
106 srcu_read_unlock(&encl->srcu, idx); in sgx_reclaimer_age()
118 struct sgx_encl *encl = page->encl; in sgx_reclaimer_block() local
125 mm_list_version = encl->mm_list_version; in sgx_reclaimer_block()
130 idx = srcu_read_lock(&encl->srcu); in sgx_reclaimer_block()
132 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_reclaimer_block()
139 if (!ret && encl == vma->vm_private_data) in sgx_reclaimer_block()
147 srcu_read_unlock(&encl->srcu, idx); in sgx_reclaimer_block()
148 } while (unlikely(encl->mm_list_version != mm_list_version)); in sgx_reclaimer_block()
150 mutex_lock(&encl->lock); in sgx_reclaimer_block()
156 mutex_unlock(&encl->lock); in sgx_reclaimer_block()
185 static const cpumask_t *sgx_encl_ewb_cpumask(struct sgx_encl *encl) in sgx_encl_ewb_cpumask() argument
187 cpumask_t *cpumask = &encl->cpumask; in sgx_encl_ewb_cpumask()
198 idx = srcu_read_lock(&encl->srcu); in sgx_encl_ewb_cpumask()
200 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_encl_ewb_cpumask()
209 srcu_read_unlock(&encl->srcu, idx); in sgx_encl_ewb_cpumask()
228 struct sgx_encl *encl = encl_page->encl; in sgx_encl_ewb() local
236 va_page = list_first_entry(&encl->va_pages, struct sgx_va_page, in sgx_encl_ewb()
241 list_move_tail(&va_page->list, &encl->va_pages); in sgx_encl_ewb()
245 ret = __etrack(sgx_get_epc_virt_addr(encl->secs.epc_page)); in sgx_encl_ewb()
260 on_each_cpu_mask(sgx_encl_ewb_cpumask(encl), in sgx_encl_ewb()
281 struct sgx_encl *encl = encl_page->encl; in sgx_reclaimer_write() local
285 mutex_lock(&encl->lock); in sgx_reclaimer_write()
289 encl->secs_child_cnt--; in sgx_reclaimer_write()
291 if (!encl->secs_child_cnt && test_bit(SGX_ENCL_INITIALIZED, &encl->flags)) { in sgx_reclaimer_write()
292 ret = sgx_encl_get_backing(encl, PFN_DOWN(encl->size), in sgx_reclaimer_write()
297 sgx_encl_ewb(encl->secs.epc_page, &secs_backing); in sgx_reclaimer_write()
299 sgx_encl_free_epc_page(encl->secs.epc_page); in sgx_reclaimer_write()
300 encl->secs.epc_page = NULL; in sgx_reclaimer_write()
306 mutex_unlock(&encl->lock); in sgx_reclaimer_write()
345 if (kref_get_unless_zero(&encl_page->encl->refcount) != 0) in sgx_reclaim_pages()
362 page_index = PFN_DOWN(encl_page->desc - encl_page->encl->base); in sgx_reclaim_pages()
363 ret = sgx_encl_get_backing(encl_page->encl, page_index, &backing[i]); in sgx_reclaim_pages()
367 mutex_lock(&encl_page->encl->lock); in sgx_reclaim_pages()
369 mutex_unlock(&encl_page->encl->lock); in sgx_reclaim_pages()
377 kref_put(&encl_page->encl->refcount, sgx_encl_release); in sgx_reclaim_pages()
397 kref_put(&encl_page->encl->refcount, sgx_encl_release); in sgx_reclaim_pages()