Lines Matching refs:vepc

33 static int __sgx_vepc_fault(struct sgx_vepc *vepc,  in __sgx_vepc_fault()  argument
40 WARN_ON(!mutex_is_locked(&vepc->lock)); in __sgx_vepc_fault()
45 epc_page = xa_load(&vepc->page_array, index); in __sgx_vepc_fault()
49 epc_page = sgx_alloc_epc_page(vepc, false); in __sgx_vepc_fault()
53 ret = xa_err(xa_store(&vepc->page_array, index, epc_page, GFP_KERNEL)); in __sgx_vepc_fault()
68 xa_erase(&vepc->page_array, index); in __sgx_vepc_fault()
77 struct sgx_vepc *vepc = vma->vm_private_data; in sgx_vepc_fault() local
80 mutex_lock(&vepc->lock); in sgx_vepc_fault()
81 ret = __sgx_vepc_fault(vepc, vma, vmf->address); in sgx_vepc_fault()
82 mutex_unlock(&vepc->lock); in sgx_vepc_fault()
101 struct sgx_vepc *vepc = file->private_data; in sgx_vepc_mmap() local
109 vma->vm_private_data = vepc; in sgx_vepc_mmap()
153 static long sgx_vepc_remove_all(struct sgx_vepc *vepc) in sgx_vepc_remove_all() argument
159 xa_for_each(&vepc->page_array, index, entry) { in sgx_vepc_remove_all()
190 struct sgx_vepc *vepc = file->private_data; in sgx_vepc_release() local
196 xa_for_each(&vepc->page_array, index, entry) { in sgx_vepc_release()
206 xa_erase(&vepc->page_array, index); in sgx_vepc_release()
213 xa_for_each(&vepc->page_array, index, entry) { in sgx_vepc_release()
224 xa_erase(&vepc->page_array, index); in sgx_vepc_release()
252 xa_destroy(&vepc->page_array); in sgx_vepc_release()
253 kfree(vepc); in sgx_vepc_release()
260 struct sgx_vepc *vepc; in sgx_vepc_open() local
262 vepc = kzalloc(sizeof(struct sgx_vepc), GFP_KERNEL); in sgx_vepc_open()
263 if (!vepc) in sgx_vepc_open()
265 mutex_init(&vepc->lock); in sgx_vepc_open()
266 xa_init(&vepc->page_array); in sgx_vepc_open()
268 file->private_data = vepc; in sgx_vepc_open()
276 struct sgx_vepc *vepc = file->private_data; in sgx_vepc_ioctl() local
282 return sgx_vepc_remove_all(vepc); in sgx_vepc_ioctl()