From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: [PATCH] kvm: x86: Prevent sign extension of DR7 in guest debugging mode Date: Mon, 27 Dec 2010 15:58:23 +0100 Message-ID: <4D18A98F.3070303@web.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigAB80A82BAA5042DEAA836609" Cc: kvm , qemu-devel To: Avi Kivity , Marcelo Tosatti Return-path: Received: from fmmailgate02.web.de ([217.72.192.227]:35699 "EHLO fmmailgate02.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753961Ab0L0O7p (ORCPT ); Mon, 27 Dec 2010 09:59:45 -0500 Sender: kvm-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigAB80A82BAA5042DEAA836609 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable From: Jan Kiszka This unbreaks guest debugging when the 4th hardware breakpoint used for guest debugging is a watchpoint of 4 or 8 byte lenght. The 31st bit of DR7 is set in that case and used to cause a sign extension to the high word which was breaking the guest state (vm entry failure). Signed-off-by: Jan Kiszka --- target-i386/kvm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 9a4bf98..218812a 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -1693,7 +1693,7 @@ void kvm_arch_update_guest_debug(CPUState *env, str= uct kvm_guest_debug *dbg) dbg->arch.debugreg[n] =3D hw_breakpoint[n].addr; dbg->arch.debugreg[7] |=3D (2 << (n * 2)) | (type_code[hw_breakpoint[n].type] << (16 + n*4)) | - (len_code[hw_breakpoint[n].len] << (18 + n*4)); + ((uint32_t)len_code[hw_breakpoint[n].len] << (18 + n*4))= ; } } /* Legal xcr0 for loading */ --=20 1.7.1 --------------enigAB80A82BAA5042DEAA836609 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAk0YqY8ACgkQitSsb3rl5xSr+gCg2yYNwV8VYJTcZVjDDAQdTaHx o1EAoNx7u89i1oSTHZVAVmrbrvO4Nuwt =wJUo -----END PGP SIGNATURE----- --------------enigAB80A82BAA5042DEAA836609--