Lines Matching refs:level

81 	int level;  member
145 static bool FNAME(is_rsvd_bits_set)(struct kvm_mmu *mmu, u64 gpte, int level) in FNAME()
147 return __is_rsvd_bits_set(&mmu->guest_rsvd_check, gpte, level) || in FNAME()
202 unsigned level, index; in FNAME() local
212 for (level = walker->max_level; level >= walker->level; --level) { in FNAME()
213 pte = orig_pte = walker->ptes[level - 1]; in FNAME()
214 table_gfn = walker->table_gfn[level - 1]; in FNAME()
215 ptep_user = walker->ptep_user[level - 1]; in FNAME()
221 if (level == walker->level && write_fault && in FNAME()
246 if (unlikely(!walker->pte_writable[level - 1])) in FNAME()
254 walker->ptes[level - 1] = pte; in FNAME()
271 unsigned int level, unsigned int gpte) in FNAME()
288 gpte &= level - (PT32_ROOT_LEVEL + mmu->cpu_role.ext.cr4_pse); in FNAME()
295 gpte |= level - PG_LEVEL_4K - 1; in FNAME()
326 walker->level = mmu->cpu_role.base.level; in FNAME()
332 if (walker->level == PT32E_ROOT_LEVEL) { in FNAME()
334 trace_kvm_mmu_paging_element(pte, walker->level); in FNAME()
337 --walker->level; in FNAME()
340 walker->max_level = walker->level; in FNAME()
351 ++walker->level; in FNAME()
357 --walker->level; in FNAME()
359 index = PT_INDEX(addr, walker->level); in FNAME()
364 BUG_ON(walker->level < 1); in FNAME()
365 walker->table_gfn[walker->level - 1] = table_gfn; in FNAME()
366 walker->pte_gpa[walker->level - 1] = pte_gpa; in FNAME()
385 &walker->pte_writable[walker->level - 1]); in FNAME()
392 walker->ptep_user[walker->level - 1] = ptep_user; in FNAME()
394 trace_kvm_mmu_paging_element(pte, walker->level); in FNAME()
405 if (unlikely(FNAME(is_rsvd_bits_set)(mmu, pte, walker->level))) { in FNAME()
410 walker->ptes[walker->level - 1] = pte; in FNAME()
413 walker->pt_access[walker->level - 1] = FNAME(gpte_access)(pt_access ^ walk_nx_mask); in FNAME()
414 } while (!FNAME(is_last_gpte)(mmu, walker->level, pte)); in FNAME()
425 gfn = gpte_to_gfn_lvl(pte, walker->level); in FNAME()
426 gfn += (addr & PT_LVL_OFFSET_MASK(walker->level)) >> PAGE_SHIFT; in FNAME()
429 if (walker->level > PG_LEVEL_4K && is_cpuid_PSE36()) in FNAME()
461 walker->pt_access[walker->level - 1]); in FNAME()
553 struct guest_walker *gw, int level) in FNAME()
556 gpa_t base_gpa, pte_gpa = gw->pte_gpa[level - 1]; in FNAME()
560 if (level == PG_LEVEL_4K) { in FNAME()
572 return r || curr_pte != gw->ptes[level - 1]; in FNAME()
585 if (sp->role.level > PG_LEVEL_4K) in FNAME()
630 top_level = vcpu->arch.mmu->cpu_role.base.level; in FNAME()
649 if (it.level == gw->level) in FNAME()
652 table_gfn = gw->table_gfn[it.level - 2]; in FNAME()
653 access = gw->pt_access[it.level - 2]; in FNAME()
683 if (FNAME(gpte_changed)(vcpu, gw, it.level - 1)) in FNAME()
700 disallowed_hugepage_adjust(fault, *it.sptep, it.level); in FNAME()
702 base_gfn = gfn_round_for_level(fault->gfn, it.level); in FNAME()
703 if (it.level == fault->goal_level) in FNAME()
716 fault->req_level >= it.level); in FNAME()
719 if (WARN_ON_ONCE(it.level != fault->goal_level)) in FNAME()
756 int level; in FNAME() local
757 gfn_t mask = ~(KVM_PAGES_PER_HPAGE(walker->level) - 1); in FNAME()
764 for (level = walker->level; level <= walker->max_level; level++) { in FNAME()
765 gfn_t gfn = walker->gfn ^ walker->table_gfn[level - 1]; in FNAME()
836 fault->max_level = walker.level; in FNAME()
882 WARN_ON(sp->role.level != PG_LEVEL_4K); in FNAME()
895 int level; in FNAME() local
913 level = iterator.level; in FNAME()
918 if (is_last_spte(old_spte, level)) { in FNAME()
1002 .level = 0xf, in FNAME()