[PATCH] KVM: x86: Deplete Paolo's brown paper bag supply by one

From: Sean Christopherson
Date: Wed Apr 06 2022 - 18:51:16 EST


Fix an inverted check on CR0.PG when computing the cpu_role, the MMU is
direct and all CR4 bits ignored if paging is disabled, not enabled.

Fixes: d73678dc11ec ("KVM: x86/mmu: split cpu_role from mmu_role")
Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---

I haven't done much testing on the rest of the MMU role patches, this just
popped up in very, very basic testing ;-) I assume this will be squashed,
hence the snarky shortlog.

arch/x86/kvm/mmu/mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index e41d7bba7a65..ab24fc161bac 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -4699,7 +4699,7 @@ kvm_calc_cpu_role(struct kvm_vcpu *vcpu, const struct kvm_mmu_role_regs *regs)
role.base.smm = is_smm(vcpu);
role.base.guest_mode = is_guest_mode(vcpu);

- if (____is_cr0_pg(regs)) {
+ if (!____is_cr0_pg(regs)) {
role.base.direct = 1;
return role;
}

base-commit: 56ba4b488353a8925b30367d72e41d1996c23554
--
2.35.1.1094.g7c7d902a7c-goog