|
@@ -2518,13 +2518,13 @@ static int vmload_interception(struct vcpu_svm *svm)
|
|
|
if (nested_svm_check_permissions(svm))
|
|
|
return 1;
|
|
|
|
|
|
- svm->next_rip = kvm_rip_read(&svm->vcpu) + 3;
|
|
|
- skip_emulated_instruction(&svm->vcpu);
|
|
|
-
|
|
|
nested_vmcb = nested_svm_map(svm, svm->vmcb->save.rax, &page);
|
|
|
if (!nested_vmcb)
|
|
|
return 1;
|
|
|
|
|
|
+ svm->next_rip = kvm_rip_read(&svm->vcpu) + 3;
|
|
|
+ skip_emulated_instruction(&svm->vcpu);
|
|
|
+
|
|
|
nested_svm_vmloadsave(nested_vmcb, svm->vmcb);
|
|
|
nested_svm_unmap(page);
|
|
|
|
|
@@ -2539,13 +2539,13 @@ static int vmsave_interception(struct vcpu_svm *svm)
|
|
|
if (nested_svm_check_permissions(svm))
|
|
|
return 1;
|
|
|
|
|
|
- svm->next_rip = kvm_rip_read(&svm->vcpu) + 3;
|
|
|
- skip_emulated_instruction(&svm->vcpu);
|
|
|
-
|
|
|
nested_vmcb = nested_svm_map(svm, svm->vmcb->save.rax, &page);
|
|
|
if (!nested_vmcb)
|
|
|
return 1;
|
|
|
|
|
|
+ svm->next_rip = kvm_rip_read(&svm->vcpu) + 3;
|
|
|
+ skip_emulated_instruction(&svm->vcpu);
|
|
|
+
|
|
|
nested_svm_vmloadsave(svm->vmcb, nested_vmcb);
|
|
|
nested_svm_unmap(page);
|
|
|
|