diff options
author | Sean Christopherson <seanjc@google.com> | 2021-06-22 20:57:27 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-06-25 01:00:45 +0300 |
commit | af0eb17e99e5df76380404881e3e5042d582a6b3 (patch) | |
tree | c481e60939239013a3d6b565a733eef35f3e73fc /arch/x86/kvm | |
parent | fa4b558802c0ed4ef8132c1b2d1e993c519eb0ae (diff) | |
download | linux-af0eb17e99e5df76380404881e3e5042d582a6b3.tar.xz |
KVM: x86/mmu: Don't update nested guest's paging bitmasks if CR0.PG=0
Don't bother updating the bitmasks and last-leaf information if paging is
disabled as the metadata will never be used.
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210622175739.3610207-43-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r-- | arch/x86/kvm/mmu/mmu.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index 9a06003811fd..6447d9fe1672 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -4646,12 +4646,12 @@ static void init_kvm_tdp_mmu(struct kvm_vcpu *vcpu) context->gva_to_gpa = paging32_gva_to_gpa; } - if (is_cr0_pg(context)) + if (is_cr0_pg(context)) { reset_rsvds_bits_mask(vcpu, context); - - update_permission_bitmask(context, false); - update_pkru_bitmask(context); - update_last_nonleaf_level(context); + update_permission_bitmask(context, false); + update_pkru_bitmask(context); + update_last_nonleaf_level(context); + } reset_tdp_shadow_zero_bits_mask(vcpu, context); } @@ -4899,12 +4899,12 @@ static void init_kvm_nested_mmu(struct kvm_vcpu *vcpu) else g_context->gva_to_gpa = paging32_gva_to_gpa_nested; - if (is_cr0_pg(g_context)) + if (is_cr0_pg(g_context)) { reset_rsvds_bits_mask(vcpu, g_context); - - update_permission_bitmask(g_context, false); - update_pkru_bitmask(g_context); - update_last_nonleaf_level(g_context); + update_permission_bitmask(g_context, false); + update_pkru_bitmask(g_context); + update_last_nonleaf_level(g_context); + } } void kvm_init_mmu(struct kvm_vcpu *vcpu) |