On 2014-04-15 15:40, Huw Davies wrote: > 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/1119686 > > Signed-off-by: Huw Davies <huw@xxxxxxxxxxxxxxx> > --- > arch/x86/kvm/vmx.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 1f68c58..4c41d7a 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -4841,6 +4841,9 @@ static int handle_exception(struct kvm_vcpu *vcpu) > (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))) { > vcpu->arch.dr6 &= ~15; > vcpu->arch.dr6 |= dr6; > + if (dr6 == 0) /* icebp */ In arch/x86/kernel/traps.c, DR6_RESERVED is first masked out before testing the result against 0 - that's probably more robust here, too. Jan > + skip_emulated_instruction(vcpu); > + > kvm_queue_exception(vcpu, DB_VECTOR); > return 1; > } > -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html