diff options
-rw-r--r-- | arch/x86/kvm/vmx.c | 8 | ||||
-rw-r--r-- | arch/x86/kvm/x86.c | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index c87c93fd129a..c14bffc8c1f9 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c | |||
@@ -3453,6 +3453,14 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) | |||
3453 | if (test_bit(VCPU_REGS_RIP, (unsigned long *)&vcpu->arch.regs_dirty)) | 3453 | if (test_bit(VCPU_REGS_RIP, (unsigned long *)&vcpu->arch.regs_dirty)) |
3454 | vmcs_writel(GUEST_RIP, vcpu->arch.regs[VCPU_REGS_RIP]); | 3454 | vmcs_writel(GUEST_RIP, vcpu->arch.regs[VCPU_REGS_RIP]); |
3455 | 3455 | ||
3456 | /* When single-stepping over STI and MOV SS, we must clear the | ||
3457 | * corresponding interruptibility bits in the guest state. Otherwise | ||
3458 | * vmentry fails as it then expects bit 14 (BS) in pending debug | ||
3459 | * exceptions being set, but that's not correct for the guest debugging | ||
3460 | * case. */ | ||
3461 | if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP) | ||
3462 | vmx_set_interrupt_shadow(vcpu, 0); | ||
3463 | |||
3456 | /* | 3464 | /* |
3457 | * Loading guest fpu may have cleared host cr0.ts | 3465 | * Loading guest fpu may have cleared host cr0.ts |
3458 | */ | 3466 | */ |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 25a1c5739dfc..f0642396783f 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -3361,9 +3361,6 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu) | |||
3361 | 3361 | ||
3362 | static void inject_pending_irq(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) | 3362 | static void inject_pending_irq(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) |
3363 | { | 3363 | { |
3364 | if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP) | ||
3365 | kvm_x86_ops->set_interrupt_shadow(vcpu, 0); | ||
3366 | |||
3367 | /* try to reinject previous events if any */ | 3364 | /* try to reinject previous events if any */ |
3368 | if (vcpu->arch.nmi_injected) { | 3365 | if (vcpu->arch.nmi_injected) { |
3369 | kvm_x86_ops->set_nmi(vcpu); | 3366 | kvm_x86_ops->set_nmi(vcpu); |