From: Shaohua Li Date: Mon, 23 Jul 2007 06:51:32 +0000 (+0800) Subject: KVM: Hoist kvm_mmu_reload() out of the critical section X-Git-Tag: v2.6.24-rc1~1365^2~86 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ae0448f53324b3c476f68bd134d97ac4ec27e0c;p=linux-2.6 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: Shaohua Li Signed-off-by: Avi Kivity --- diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index 2c4f01bea1..79674a7a92 100644 --- a/drivers/kvm/vmx.c +++ b/drivers/kvm/vmx.c @@ -1999,16 +1999,16 @@ preempted: 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 */