Lines Matching refs:encl_mm
756 struct sgx_encl_mm *encl_mm = container_of(mn, struct sgx_encl_mm, mmu_notifier); in sgx_mmu_notifier_release() local
763 spin_lock(&encl_mm->encl->mm_lock); in sgx_mmu_notifier_release()
764 list_for_each_entry(tmp, &encl_mm->encl->mm_list, list) { in sgx_mmu_notifier_release()
765 if (tmp == encl_mm) { in sgx_mmu_notifier_release()
766 list_del_rcu(&encl_mm->list); in sgx_mmu_notifier_release()
770 spin_unlock(&encl_mm->encl->mm_lock); in sgx_mmu_notifier_release()
772 if (tmp == encl_mm) { in sgx_mmu_notifier_release()
773 synchronize_srcu(&encl_mm->encl->srcu); in sgx_mmu_notifier_release()
780 struct sgx_encl_mm *encl_mm = container_of(mn, struct sgx_encl_mm, mmu_notifier); in sgx_mmu_notifier_free() local
783 kref_put(&encl_mm->encl->refcount, sgx_encl_release); in sgx_mmu_notifier_free()
785 kfree(encl_mm); in sgx_mmu_notifier_free()
796 struct sgx_encl_mm *encl_mm = NULL; in sgx_encl_find_mm() local
804 encl_mm = tmp; in sgx_encl_find_mm()
811 return encl_mm; in sgx_encl_find_mm()
816 struct sgx_encl_mm *encl_mm; in sgx_encl_mm_add() local
834 encl_mm = kzalloc(sizeof(*encl_mm), GFP_KERNEL); in sgx_encl_mm_add()
835 if (!encl_mm) in sgx_encl_mm_add()
840 encl_mm->encl = encl; in sgx_encl_mm_add()
841 encl_mm->mm = mm; in sgx_encl_mm_add()
842 encl_mm->mmu_notifier.ops = &sgx_mmu_notifier_ops; in sgx_encl_mm_add()
844 ret = __mmu_notifier_register(&encl_mm->mmu_notifier, mm); in sgx_encl_mm_add()
846 kfree(encl_mm); in sgx_encl_mm_add()
851 list_add_rcu(&encl_mm->list, &encl->mm_list); in sgx_encl_mm_add()
906 struct sgx_encl_mm *encl_mm; in sgx_encl_cpumask() local
913 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_encl_cpumask()
914 if (!mmget_not_zero(encl_mm->mm)) in sgx_encl_cpumask()
917 cpumask_or(cpumask, cpumask, mm_cpumask(encl_mm->mm)); in sgx_encl_cpumask()
919 mmput_async(encl_mm->mm); in sgx_encl_cpumask()
981 struct sgx_encl_mm *encl_mm; in sgx_encl_get_mem_cgroup() local
998 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_encl_get_mem_cgroup()
999 if (!mmget_not_zero(encl_mm->mm)) in sgx_encl_get_mem_cgroup()
1002 memcg = get_mem_cgroup_from_mm(encl_mm->mm); in sgx_encl_get_mem_cgroup()
1004 mmput_async(encl_mm->mm); in sgx_encl_get_mem_cgroup()
1180 struct sgx_encl_mm *encl_mm; in sgx_zap_enclave_ptes() local
1192 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_zap_enclave_ptes()
1193 if (!mmget_not_zero(encl_mm->mm)) in sgx_zap_enclave_ptes()
1196 mmap_read_lock(encl_mm->mm); in sgx_zap_enclave_ptes()
1198 ret = sgx_encl_find(encl_mm->mm, addr, &vma); in sgx_zap_enclave_ptes()
1202 mmap_read_unlock(encl_mm->mm); in sgx_zap_enclave_ptes()
1204 mmput_async(encl_mm->mm); in sgx_zap_enclave_ptes()