aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/paging_tmpl.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index debe7703536..e4ad3dc84df 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -132,7 +132,7 @@ walk:
132 walker->level = vcpu->arch.mmu.root_level; 132 walker->level = vcpu->arch.mmu.root_level;
133 pte = vcpu->arch.cr3; 133 pte = vcpu->arch.cr3;
134#if PTTYPE == 64 134#if PTTYPE == 64
135 if (!is_long_mode(vcpu)) { 135 if (vcpu->arch.mmu.root_level == PT32E_ROOT_LEVEL) {
136 pte = kvm_pdptr_read(vcpu, (addr >> 30) & 3); 136 pte = kvm_pdptr_read(vcpu, (addr >> 30) & 3);
137 trace_kvm_mmu_paging_element(pte, walker->level); 137 trace_kvm_mmu_paging_element(pte, walker->level);
138 if (!is_present_gpte(pte)) { 138 if (!is_present_gpte(pte)) {
@@ -205,7 +205,7 @@ walk:
205 (PTTYPE == 64 || is_pse(vcpu))) || 205 (PTTYPE == 64 || is_pse(vcpu))) ||
206 ((walker->level == PT_PDPE_LEVEL) && 206 ((walker->level == PT_PDPE_LEVEL) &&
207 is_large_pte(pte) && 207 is_large_pte(pte) &&
208 is_long_mode(vcpu))) { 208 vcpu->arch.mmu.root_level == PT64_ROOT_LEVEL)) {
209 int lvl = walker->level; 209 int lvl = walker->level;
210 210
211 walker->gfn = gpte_to_gfn_lvl(pte, lvl); 211 walker->gfn = gpte_to_gfn_lvl(pte, lvl);