Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ae0448f authored by Shaohua Li's avatar Shaohua Li Committed by Avi Kivity
Browse files

KVM: Hoist kvm_mmu_reload() out of the critical section



vmx_cpu_run doesn't handle error correctly and kvm_mmu_reload might
sleep with mutex changes, so I move it above.

Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 310bc76c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1999,16 +1999,16 @@ static int vmx_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
		kvm_guest_debug_pre(vcpu);

again:
	r = kvm_mmu_reload(vcpu);
	if (unlikely(r))
		goto out;

	if (!vcpu->mmio_read_completed)
		do_interrupt_requests(vcpu, kvm_run);

	vmx_save_host_state(vcpu);
	kvm_load_guest_fpu(vcpu);

	r = kvm_mmu_reload(vcpu);
	if (unlikely(r))
		goto out;

	/*
	 * Loading guest fpu may have cleared host cr0.ts
	 */