]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
KVM: X86: Fix single-step with KVM_SET_GUEST_DEBUG
authorPeter Xu <peterx@redhat.com>
Tue, 5 May 2020 20:49:59 +0000 (16:49 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 7 May 2020 10:13:41 +0000 (06:13 -0400)
When single-step triggered with KVM_SET_GUEST_DEBUG, we should fill in the pc
value with current linear RIP rather than the cached singlestep address.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20200505205000.188252-3-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 109115c9689766c774c1a53a0d6f5fa3cfcdccb4..f7628555f036ab6ca344ea31bad42b78bdc5fe2d 100644 (file)
@@ -6662,7 +6662,7 @@ static int kvm_vcpu_do_singlestep(struct kvm_vcpu *vcpu)
 
        if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP) {
                kvm_run->debug.arch.dr6 = DR6_BS | DR6_FIXED_1 | DR6_RTM;
-               kvm_run->debug.arch.pc = vcpu->arch.singlestep_rip;
+               kvm_run->debug.arch.pc = kvm_get_linear_rip(vcpu);
                kvm_run->debug.arch.exception = DB_VECTOR;
                kvm_run->exit_reason = KVM_EXIT_DEBUG;
                return 0;