Commit fd2a445a authored by Huw Davies's avatar Huw Davies Committed by Marcelo Tosatti

KVM: VMX: Advance rip to after an ICEBP instruction

When entering an exception after an ICEBP, the saved instruction
pointer should point to after the instruction.

This fixes the bug here: https://bugs.launchpad.net/qemu/+bug/1119686Signed-off-by: default avatarHuw Davies <huw@codeweavers.com>
Reviewed-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 63b5cf04
...@@ -4841,6 +4841,9 @@ static int handle_exception(struct kvm_vcpu *vcpu) ...@@ -4841,6 +4841,9 @@ static int handle_exception(struct kvm_vcpu *vcpu)
(KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))) { (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))) {
vcpu->arch.dr6 &= ~15; vcpu->arch.dr6 &= ~15;
vcpu->arch.dr6 |= dr6; vcpu->arch.dr6 |= dr6;
if (!(dr6 & ~DR6_RESERVED)) /* icebp */
skip_emulated_instruction(vcpu);
kvm_queue_exception(vcpu, DB_VECTOR); kvm_queue_exception(vcpu, DB_VECTOR);
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment