• Michael Roth's avatar
    KVM: SVM: include CR3 in initial VMSA state for SEV-ES guests · 405329fc
    Michael Roth authored
    Normally guests will set up CR3 themselves, but some guests, such as
    kselftests, and potentially CONFIG_PVH guests, rely on being booted
    with paging enabled and CR3 initialized to a pre-allocated page table.
    
    Currently CR3 updates via KVM_SET_SREGS* are not loaded into the guest
    VMCB until just prior to entering the guest. For SEV-ES/SEV-SNP, this
    is too late, since it will have switched over to using the VMSA page
    prior to that point, with the VMSA CR3 copied from the VMCB initial
    CR3 value: 0.
    
    Address this by sync'ing the CR3 value into the VMCB save area
    immediately when KVM_SET_SREGS* is issued so it will find it's way into
    the initial VMSA.
    Suggested-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: default avatarMichael Roth <michael.roth@amd.com>
    Message-Id: <20211216171358.61140-10-michael.roth@amd.com>
    [Remove vmx_post_set_cr3; add a remark about kvm_set_cr3 not calling the
     new hook. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    405329fc
vmx.c 226 KB