|
@@ -1647,9 +1647,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;
|