Lines Matching refs:prot
333 static int hyp_set_prot_attr(enum kvm_pgtable_prot prot, kvm_pte_t *ptep) in hyp_set_prot_attr() argument
335 bool device = prot & KVM_PGTABLE_PROT_DEVICE; in hyp_set_prot_attr()
339 u32 ap = (prot & KVM_PGTABLE_PROT_W) ? KVM_PTE_LEAF_ATTR_LO_S1_AP_RW : in hyp_set_prot_attr()
342 if (!(prot & KVM_PGTABLE_PROT_R)) in hyp_set_prot_attr()
346 prot &= ~KVM_PGTABLE_PROT_UX; in hyp_set_prot_attr()
348 if (prot & KVM_PGTABLE_PROT_X) { in hyp_set_prot_attr()
349 if (prot & KVM_PGTABLE_PROT_W) in hyp_set_prot_attr()
360 if (!(prot & KVM_PGTABLE_PROT_PX)) in hyp_set_prot_attr()
362 if (!(prot & KVM_PGTABLE_PROT_UX)) in hyp_set_prot_attr()
365 if (!(prot & KVM_PGTABLE_PROT_PX)) in hyp_set_prot_attr()
373 attr |= prot & KVM_PTE_LEAF_ATTR_HI_SW; in hyp_set_prot_attr()
381 enum kvm_pgtable_prot prot = pte & KVM_PTE_LEAF_ATTR_HI_SW; in kvm_pgtable_hyp_pte_prot() local
385 return prot; in kvm_pgtable_hyp_pte_prot()
389 prot |= KVM_PGTABLE_PROT_PX; in kvm_pgtable_hyp_pte_prot()
391 prot |= KVM_PGTABLE_PROT_UX; in kvm_pgtable_hyp_pte_prot()
394 prot |= KVM_PGTABLE_PROT_PX; in kvm_pgtable_hyp_pte_prot()
399 prot |= KVM_PGTABLE_PROT_R; in kvm_pgtable_hyp_pte_prot()
401 prot |= KVM_PGTABLE_PROT_RW; in kvm_pgtable_hyp_pte_prot()
403 return prot; in kvm_pgtable_hyp_pte_prot()
452 enum kvm_pgtable_prot prot) in kvm_pgtable_hyp_map() argument
464 ret = hyp_set_prot_attr(prot, &map_data.attr); in kvm_pgtable_hyp_map()
682 static int stage2_set_xn_attr(enum kvm_pgtable_prot prot, kvm_pte_t *attr) in stage2_set_xn_attr() argument
687 px = prot & KVM_PGTABLE_PROT_PX; in stage2_set_xn_attr()
688 ux = prot & KVM_PGTABLE_PROT_UX; in stage2_set_xn_attr()
707 static int stage2_set_prot_attr(struct kvm_pgtable *pgt, enum kvm_pgtable_prot prot, in stage2_set_prot_attr() argument
714 switch (prot & (KVM_PGTABLE_PROT_DEVICE | in stage2_set_prot_attr()
719 if (prot & KVM_PGTABLE_PROT_X) in stage2_set_prot_attr()
724 if (prot & KVM_PGTABLE_PROT_X) in stage2_set_prot_attr()
732 r = stage2_set_xn_attr(prot, &attr); in stage2_set_prot_attr()
736 if (prot & KVM_PGTABLE_PROT_R) in stage2_set_prot_attr()
739 if (prot & KVM_PGTABLE_PROT_W) in stage2_set_prot_attr()
746 attr |= prot & KVM_PTE_LEAF_ATTR_HI_SW; in stage2_set_prot_attr()
754 enum kvm_pgtable_prot prot = pte & KVM_PTE_LEAF_ATTR_HI_SW; in kvm_pgtable_stage2_pte_prot() local
757 return prot; in kvm_pgtable_stage2_pte_prot()
760 prot |= KVM_PGTABLE_PROT_R; in kvm_pgtable_stage2_pte_prot()
762 prot |= KVM_PGTABLE_PROT_W; in kvm_pgtable_stage2_pte_prot()
766 prot |= KVM_PGTABLE_PROT_PX | KVM_PGTABLE_PROT_UX; in kvm_pgtable_stage2_pte_prot()
769 prot |= KVM_PGTABLE_PROT_UX; in kvm_pgtable_stage2_pte_prot()
772 prot |= KVM_PGTABLE_PROT_PX; in kvm_pgtable_stage2_pte_prot()
778 return prot; in kvm_pgtable_stage2_pte_prot()
1091 u64 phys, enum kvm_pgtable_prot prot, in kvm_pgtable_stage2_map() argument
1099 .force_pte = pgt->force_pte_cb && pgt->force_pte_cb(addr, addr + size, prot), in kvm_pgtable_stage2_map()
1112 ret = stage2_set_prot_attr(pgt, prot, &map_data.attr); in kvm_pgtable_stage2_map()
1349 enum kvm_pgtable_prot prot, enum kvm_pgtable_walk_flags flags) in kvm_pgtable_stage2_relax_perms() argument
1355 if (prot & KVM_PTE_LEAF_ATTR_HI_SW) in kvm_pgtable_stage2_relax_perms()
1358 if (prot & KVM_PGTABLE_PROT_R) in kvm_pgtable_stage2_relax_perms()
1361 if (prot & KVM_PGTABLE_PROT_W) in kvm_pgtable_stage2_relax_perms()
1364 ret = stage2_set_xn_attr(prot, &xn); in kvm_pgtable_stage2_relax_perms()
1408 enum kvm_pgtable_prot prot, in kvm_pgtable_stage2_create_unlinked() argument
1441 ret = stage2_set_prot_attr(pgt, prot, &map_data.attr); in kvm_pgtable_stage2_create_unlinked()
1487 enum kvm_pgtable_prot prot; in stage2_split_walker() local
1526 prot = kvm_pgtable_stage2_pte_prot(pte); in stage2_split_walker()
1529 level, prot, mc, force_pte); in stage2_split_walker()