405329fc9a
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: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Michael 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: Paolo Bonzini <pbonzini@redhat.com> |
||
---|---|---|
.. | ||
capabilities.h | ||
evmcs.c | ||
evmcs.h | ||
nested.c | ||
nested.h | ||
pmu_intel.c | ||
posted_intr.c | ||
posted_intr.h | ||
sgx.c | ||
sgx.h | ||
vmcs12.c | ||
vmcs12.h | ||
vmcs_shadow_fields.h | ||
vmcs.h | ||
vmenter.S | ||
vmx_ops.h | ||
vmx.c | ||
vmx.h |