diff options
author | Shaohua Li <shaohua.li@intel.com> | 2007-07-23 14:51:32 +0800 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-10-13 10:18:19 +0200 |
commit | 9ae0448f53324b3c476f68bd134d97ac4ec27e0c (patch) | |
tree | 90b5c3c166bd9ce9c9b415c6a6246c2fdb53693c | |
parent | 310bc76c2b6829cd280def4927b7ccf8b8c795df (diff) | |
download | op-kernel-dev-9ae0448f53324b3c476f68bd134d97ac4ec27e0c.zip op-kernel-dev-9ae0448f53324b3c476f68bd134d97ac4ec27e0c.tar.gz |
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 <shaohua.li@intel.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r-- | drivers/kvm/vmx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index 2c4f01b..79674a7 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 */ |