Lines Matching refs:kvm_pte_t

114 static bool kvm_pte_table(kvm_pte_t pte, u32 level)  in kvm_pte_table()
125 static kvm_pte_t kvm_phys_to_pte(u64 pa) in kvm_phys_to_pte()
127 kvm_pte_t pte = pa & KVM_PTE_ADDR_MASK; in kvm_phys_to_pte()
135 static kvm_pte_t *kvm_pte_follow(kvm_pte_t pte, struct kvm_pgtable_mm_ops *mm_ops) in kvm_pte_follow()
140 static void kvm_clear_pte(kvm_pte_t *ptep) in kvm_clear_pte()
145 static void kvm_set_table_pte(kvm_pte_t *ptep, kvm_pte_t *childp, in kvm_set_table_pte()
148 kvm_pte_t old = *ptep, pte = kvm_phys_to_pte(mm_ops->virt_to_phys(childp)); in kvm_set_table_pte()
157 static kvm_pte_t kvm_init_valid_leaf_pte(u64 pa, kvm_pte_t attr, u32 level) in kvm_init_valid_leaf_pte()
159 kvm_pte_t pte = kvm_phys_to_pte(pa); in kvm_init_valid_leaf_pte()
170 static kvm_pte_t kvm_init_invalid_leaf_owner(u8 owner_id) in kvm_init_invalid_leaf_owner()
176 u32 level, kvm_pte_t *ptep, in kvm_pgtable_visitor_cb()
184 kvm_pte_t *pgtable, u32 level);
187 kvm_pte_t *ptep, u32 level) in __kvm_pgtable_visit()
191 kvm_pte_t *childp, pte = *ptep; in __kvm_pgtable_visit()
231 kvm_pte_t *pgtable, u32 level) in __kvm_pgtable_walk()
240 kvm_pte_t *ptep = &pgtable[idx]; in __kvm_pgtable_walk()
267 kvm_pte_t *ptep = &pgt->pgd[idx * PTRS_PER_PTE]; in _kvm_pgtable_walk()
291 kvm_pte_t pte;
295 static int leaf_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in leaf_walker()
307 kvm_pte_t *ptep, u32 *level) in kvm_pgtable_get_leaf()
331 kvm_pte_t attr;
335 static int hyp_set_prot_attr(enum kvm_pgtable_prot prot, kvm_pte_t *ptep) in hyp_set_prot_attr()
339 kvm_pte_t attr = FIELD_PREP(KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX, mtype); in hyp_set_prot_attr()
366 enum kvm_pgtable_prot kvm_pgtable_hyp_pte_prot(kvm_pte_t pte) in kvm_pgtable_hyp_pte_prot()
386 static bool hyp_pte_needs_update(kvm_pte_t old, kvm_pte_t new) in hyp_pte_needs_update()
402 kvm_pte_t *ptep, struct hyp_map_data *data) in hyp_map_walker_try_leaf()
404 kvm_pte_t new, old = *ptep; in hyp_map_walker_try_leaf()
418 static int hyp_map_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in hyp_map_walker()
421 kvm_pte_t *childp; in hyp_map_walker()
431 childp = (kvm_pte_t *)mm_ops->zalloc_page(NULL); in hyp_map_walker()
468 pgt->pgd = (kvm_pte_t *)mm_ops->zalloc_page(NULL); in kvm_pgtable_hyp_init()
481 static int hyp_free_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in hyp_free_walker()
505 kvm_pte_t attr;
508 kvm_pte_t *anchor;
509 kvm_pte_t *childp;
562 kvm_pte_t *ptep) in stage2_set_prot_attr()
565 kvm_pte_t attr = device ? KVM_S2_MEMATTR(pgt, DEVICE_nGnRE) : in stage2_set_prot_attr()
588 enum kvm_pgtable_prot kvm_pgtable_stage2_pte_prot(kvm_pte_t pte) in kvm_pgtable_stage2_pte_prot()
605 static bool stage2_pte_needs_update(kvm_pte_t old, kvm_pte_t new) in stage2_pte_needs_update()
613 static bool stage2_pte_is_counted(kvm_pte_t pte) in stage2_pte_is_counted()
623 static void stage2_put_pte(kvm_pte_t *ptep, struct kvm_s2_mmu *mmu, u64 addr, in stage2_put_pte()
638 static bool stage2_pte_cacheable(struct kvm_pgtable *pgt, kvm_pte_t pte) in stage2_pte_cacheable()
644 static bool stage2_pte_executable(kvm_pte_t pte) in stage2_pte_executable()
659 kvm_pte_t *ptep, in stage2_map_walker_try_leaf()
662 kvm_pte_t new, old = *ptep; in stage2_map_walker_try_leaf()
705 kvm_pte_t *ptep, in stage2_map_walk_table_pre()
727 static int stage2_map_walk_leaf(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_map_walk_leaf()
731 kvm_pte_t *childp, pte = *ptep; in stage2_map_walk_leaf()
770 kvm_pte_t *ptep, in stage2_map_walk_table_post()
774 kvm_pte_t *childp; in stage2_map_walk_table_post()
814 static int stage2_map_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_map_walker()
890 static int stage2_unmap_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_unmap_walker()
897 kvm_pte_t pte = *ptep, *childp = NULL; in stage2_unmap_walker()
925 kvm_pte_t *pte_follow = kvm_pte_follow(pte, mm_ops); in stage2_unmap_walker()
950 kvm_pte_t attr_set;
951 kvm_pte_t attr_clr;
952 kvm_pte_t pte;
957 static int stage2_attr_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_attr_walker()
961 kvm_pte_t pte = *ptep; in stage2_attr_walker()
994 u64 size, kvm_pte_t attr_set, in stage2_update_leaf_attrs()
995 kvm_pte_t attr_clr, kvm_pte_t *orig_pte, in stage2_update_leaf_attrs()
999 kvm_pte_t attr_mask = KVM_PTE_LEAF_ATTR_LO | KVM_PTE_LEAF_ATTR_HI; in stage2_update_leaf_attrs()
1030 kvm_pte_t kvm_pgtable_stage2_mkyoung(struct kvm_pgtable *pgt, u64 addr) in kvm_pgtable_stage2_mkyoung()
1032 kvm_pte_t pte = 0; in kvm_pgtable_stage2_mkyoung()
1039 kvm_pte_t kvm_pgtable_stage2_mkold(struct kvm_pgtable *pgt, u64 addr) in kvm_pgtable_stage2_mkold()
1041 kvm_pte_t pte = 0; in kvm_pgtable_stage2_mkold()
1055 kvm_pte_t pte = 0; in kvm_pgtable_stage2_is_young()
1065 kvm_pte_t set = 0, clr = 0; in kvm_pgtable_stage2_relax_perms()
1085 static int stage2_flush_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_flush_walker()
1091 kvm_pte_t pte = *ptep; in stage2_flush_walker()
1092 kvm_pte_t *pte_follow; in stage2_flush_walker()
1147 static int stage2_free_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, in stage2_free_walker()
1152 kvm_pte_t pte = *ptep; in stage2_free_walker()