On 4/7/22 00:51, Sean Christopherson wrote:
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.
It certainly got my attention... squashed, thanks. :)
Paolo
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