Commit 2f675917 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

KVM: nSVM: pass vmcb_control_area to copy_vmcb_control_area



This will come in handy when we put a struct vmcb_control_area in
svm->nested.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 18fc6c55
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -141,11 +141,9 @@ void recalc_intercepts(struct vcpu_svm *svm)
	c->intercept |= g->intercept;
}

static void copy_vmcb_control_area(struct vmcb *dst_vmcb, struct vmcb *from_vmcb)
static void copy_vmcb_control_area(struct vmcb_control_area *dst,
				   struct vmcb_control_area *from)
{
	struct vmcb_control_area *dst  = &dst_vmcb->control;
	struct vmcb_control_area *from = &from_vmcb->control;

	dst->intercept_cr         = from->intercept_cr;
	dst->intercept_dr         = from->intercept_dr;
	dst->intercept_exceptions = from->intercept_exceptions;
@@ -419,7 +417,7 @@ int nested_svm_vmrun(struct vcpu_svm *svm)
	else
		hsave->save.cr3    = kvm_read_cr3(&svm->vcpu);

	copy_vmcb_control_area(hsave, vmcb);
	copy_vmcb_control_area(&hsave->control, &vmcb->control);

	svm->nested.nested_run_pending = 1;
	enter_svm_guest_mode(svm, vmcb_gpa, nested_vmcb);
@@ -550,7 +548,7 @@ int nested_svm_vmexit(struct vcpu_svm *svm)
		nested_vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK;

	/* Restore the original control entries */
	copy_vmcb_control_area(vmcb, hsave);
	copy_vmcb_control_area(&vmcb->control, &hsave->control);

	svm->vmcb->control.tsc_offset = svm->vcpu.arch.tsc_offset =
		svm->vcpu.arch.l1_tsc_offset;