mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-07 23:28:55 +00:00
KVM: nSVM: Add a comment to document why nNPT uses vmcb01, not vCPU state
Add a comment in the nested NPT initialization flow to call out that it intentionally uses vmcb01 instead current vCPU state to get the effective hCR4 and hEFER for L1's NPT context. Note, despite nSVM's efforts to handle the case where vCPU state doesn't reflect L1 state, the MMU may still do the wrong thing due to pulling state from the vCPU instead of the passed in CR0/CR4/EFER values. This will be addressed in future commits. Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20210622175739.3610207-16-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
dbc4739b6b
commit
31e96bc636
1 changed files with 6 additions and 0 deletions
|
@ -98,6 +98,12 @@ static void nested_svm_init_mmu_context(struct kvm_vcpu *vcpu)
|
|||
WARN_ON(mmu_is_nested(vcpu));
|
||||
|
||||
vcpu->arch.mmu = &vcpu->arch.guest_mmu;
|
||||
|
||||
/*
|
||||
* The NPT format depends on L1's CR4 and EFER, which is in vmcb01. Note,
|
||||
* when called via KVM_SET_NESTED_STATE, that state may _not_ match current
|
||||
* vCPU state. CR0.WP is explicitly ignored, while CR0.PG is required.
|
||||
*/
|
||||
kvm_init_shadow_npt_mmu(vcpu, X86_CR0_PG, svm->vmcb01.ptr->save.cr4,
|
||||
svm->vmcb01.ptr->save.efer,
|
||||
svm->nested.ctl.nested_cr3);
|
||||
|
|
Loading…
Add table
Reference in a new issue