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>
This commit is contained in:
parent
310bc76c2b
commit
9ae0448f53
1 changed files with 4 additions and 4 deletions
|
@ -1999,16 +1999,16 @@ preempted:
|
||||||
kvm_guest_debug_pre(vcpu);
|
kvm_guest_debug_pre(vcpu);
|
||||||
|
|
||||||
again:
|
again:
|
||||||
|
r = kvm_mmu_reload(vcpu);
|
||||||
|
if (unlikely(r))
|
||||||
|
goto out;
|
||||||
|
|
||||||
if (!vcpu->mmio_read_completed)
|
if (!vcpu->mmio_read_completed)
|
||||||
do_interrupt_requests(vcpu, kvm_run);
|
do_interrupt_requests(vcpu, kvm_run);
|
||||||
|
|
||||||
vmx_save_host_state(vcpu);
|
vmx_save_host_state(vcpu);
|
||||||
kvm_load_guest_fpu(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
|
* Loading guest fpu may have cleared host cr0.ts
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue