diff options
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 4de705cdcafd..b78f89d34242 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -5279,10 +5279,6 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) | |||
5279 | kvm_deliver_pmi(vcpu); | 5279 | kvm_deliver_pmi(vcpu); |
5280 | } | 5280 | } |
5281 | 5281 | ||
5282 | r = kvm_mmu_reload(vcpu); | ||
5283 | if (unlikely(r)) | ||
5284 | goto out; | ||
5285 | |||
5286 | if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win) { | 5282 | if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win) { |
5287 | inject_pending_event(vcpu); | 5283 | inject_pending_event(vcpu); |
5288 | 5284 | ||
@@ -5298,6 +5294,12 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) | |||
5298 | } | 5294 | } |
5299 | } | 5295 | } |
5300 | 5296 | ||
5297 | r = kvm_mmu_reload(vcpu); | ||
5298 | if (unlikely(r)) { | ||
5299 | kvm_x86_ops->cancel_injection(vcpu); | ||
5300 | goto out; | ||
5301 | } | ||
5302 | |||
5301 | preempt_disable(); | 5303 | preempt_disable(); |
5302 | 5304 | ||
5303 | kvm_x86_ops->prepare_guest_switch(vcpu); | 5305 | kvm_x86_ops->prepare_guest_switch(vcpu); |