• Vitaly Kuznetsov's avatar
    x86/kvm/mmu: reset MMU context when 32-bit guest switches PAE · 0699c64a
    Vitaly Kuznetsov authored
    Commit 47c42e6b ("KVM: x86: fix handling of role.cr4_pae and rename it
    to 'gpte_size'") introduced a regression: 32-bit PAE guests stopped
    working. The issue appears to be: when guest switches (enables) PAE we need
    to re-initialize MMU context (set context->root_level, do
    reset_rsvds_bits_mask(), ...) but init_kvm_tdp_mmu() doesn't do that
    because we threw away is_pae(vcpu) flag from mmu role. Restore it to
    kvm_mmu_extended_role (as we now don't need it in base role) to fix
    the issue.
    
    Fixes: 47c42e6b ("KVM: x86: fix handling of role.cr4_pae and rename it to 'gpte_size'")
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    0699c64a
mmu.c 158 KB