lkml.org 
[lkml]   [2010]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/10] KVM: SVM: Sync all control registers on nested vmexit
    Date
    Currently the vmexit emulation does not sync control
    registers were the access is typically intercepted by the
    nested hypervisor. But we can not count on that intercepts
    to sync these registers too and make the code
    architecturally more correct.

    Cc: stable@kernel.org
    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kvm/svm.c | 4 ++++
    1 files changed, 4 insertions(+), 0 deletions(-)

    diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
    index 25d26ec..9a4f9ee 100644
    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -1644,9 +1644,13 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
    nested_vmcb->save.ds = vmcb->save.ds;
    nested_vmcb->save.gdtr = vmcb->save.gdtr;
    nested_vmcb->save.idtr = vmcb->save.idtr;
    + nested_vmcb->save.cr0 = kvm_read_cr0(&svm->vcpu);
    if (npt_enabled)
    nested_vmcb->save.cr3 = vmcb->save.cr3;
    + else
    + nested_vmcb->save.cr3 = svm->vcpu.arch.cr3;
    nested_vmcb->save.cr2 = vmcb->save.cr2;
    + nested_vmcb->save.cr4 = svm->vcpu.arch.cr4;
    nested_vmcb->save.rflags = vmcb->save.rflags;
    nested_vmcb->save.rip = vmcb->save.rip;
    nested_vmcb->save.rsp = vmcb->save.rsp;
    --
    1.6.6



    \
     
     \ /
      Last update: 2010-02-18 13:17    [W:2.128 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site