Lines Matching +full:supervisor +full:- +full:level

1 /* SPDX-License-Identifier: GPL-2.0 */
58 return ((2ULL << (e - s)) - 1) << s; in rsvd_bits()
76 return (1ULL << (max_gpa_bits - PAGE_SHIFT)) - 1; in kvm_mmu_max_gfn()
116 if (likely(vcpu->arch.mmu->root.hpa != INVALID_PAGE)) in kvm_mmu_reload()
146 u64 root_hpa = vcpu->arch.mmu->root.hpa; in kvm_mmu_load_pgd()
152 vcpu->arch.mmu->root_role.level); in kvm_mmu_load_pgd()
161 * be stale. Refresh CR0.WP and the metadata on-demand when checking in kvm_mmu_refresh_passthrough_bits()
167 if (!tdp_enabled || mmu == &vcpu->arch.guest_mmu) in kvm_mmu_refresh_passthrough_bits()
190 * For explicit supervisor accesses, SMAP is disabled if EFLAGS.AC = 1. in permission_fault()
191 * For implicit supervisor accesses, SMAP cannot be overridden. in permission_fault()
193 * SMAP works on supervisor accesses only, and not_smap can in permission_fault()
209 fault = (mmu->permissions[index] >> pte_access) & 1; in permission_fault()
212 if (unlikely(mmu->pkru_mask)) { in permission_fault()
221 pkru_bits = (vcpu->arch.pkru >> (pte_pkey * 2)) & 3; in permission_fault()
226 pkru_bits &= mmu->pkru_mask >> offset; in permission_fault()
227 errcode |= -pkru_bits & PFERR_PK_MASK; in permission_fault()
231 return -(u32)fault & errcode; in permission_fault()
247 return smp_load_acquire(&kvm->arch.shadow_root_allocated); in kvm_shadow_root_allocated()
261 static inline gfn_t gfn_to_index(gfn_t gfn, gfn_t base_gfn, int level) in gfn_to_index() argument
264 return (gfn >> KVM_HPAGE_GFN_SHIFT(level)) - in gfn_to_index()
265 (base_gfn >> KVM_HPAGE_GFN_SHIFT(level)); in gfn_to_index()
270 int level) in __kvm_mmu_slot_lpages() argument
272 return gfn_to_index(slot->base_gfn + npages - 1, in __kvm_mmu_slot_lpages()
273 slot->base_gfn, level) + 1; in __kvm_mmu_slot_lpages()
277 kvm_mmu_slot_lpages(struct kvm_memory_slot *slot, int level) in kvm_mmu_slot_lpages() argument
279 return __kvm_mmu_slot_lpages(slot, slot->npages, level); in kvm_mmu_slot_lpages()
282 static inline void kvm_update_page_stats(struct kvm *kvm, int level, int count) in kvm_update_page_stats() argument
284 atomic64_add(count, &kvm->stat.pages[level - 1]); in kvm_update_page_stats()
295 if (mmu != &vcpu->arch.nested_mmu) in kvm_translate_gpa()
302 return kvm->arch.vm_type == KVM_X86_TDX_VM; in kvm_has_mirrored_tdp()
307 return kvm->arch.gfn_direct_bits; in kvm_gfn_direct_bits()