From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH] kvm: Fix overlapping check for memory slots Date: Mon, 13 Apr 2009 10:50:40 +0200 Message-ID: <49E2FCE0.5010509@web.de> References: <49E06754.8050906@web.de> <200904131347.29389.sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigA15C9E6A143FD0A302547666" Cc: Avi Kivity , kvm@vger.kernel.org, Glauber Costa , qemu-devel To: Sheng Yang Return-path: Received: from fmmailgate03.web.de ([217.72.192.234]:48795 "EHLO fmmailgate03.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754694AbZDMIus (ORCPT ); Mon, 13 Apr 2009 04:50:48 -0400 In-Reply-To: <200904131347.29389.sheng@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigA15C9E6A143FD0A302547666 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Sheng Yang wrote: > On Saturday 11 April 2009 17:48:04 Jan Kiszka wrote: >> This nice little buglet complicates a smarter slot management in qemu >> user space just "slightly". Sigh... >> >> --------> >> >> When checking for overlapping slots on registration of a new one, kvm >> currently also considers zero-length (ie. deleted) slots and rejects >> requests incorrectly. This finally denies user space from joining slot= s. >> Fix the check by skipping deleted slots. >> >> Signed-off-by: Jan Kiszka >> --- >> >> virt/kvm/kvm_main.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >> index 363af32..18f06d2 100644 >> --- a/virt/kvm/kvm_main.c >> +++ b/virt/kvm/kvm_main.c >> @@ -1117,7 +1117,7 @@ int __kvm_set_memory_region(struct kvm *kvm, >> for (i =3D 0; i < KVM_MEMORY_SLOTS; ++i) { >> struct kvm_memory_slot *s =3D &kvm->memslots[i]; >> >> - if (s =3D=3D memslot) >> + if (s =3D=3D memslot || !s->npages) >> continue; >> if (!((base_gfn + npages <=3D s->base_gfn) || >> (base_gfn >=3D s->base_gfn + s->npages))) >=20 > Is it necessary to preserve a valid base_gfn/flags/etc for a zeroed slo= t?=20 > Seems kvm_free_physmem_slot didn't clean them. It is not necessary as long as we ignore such slots (as this patch does).= Jan --------------enigA15C9E6A143FD0A302547666 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.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEQEARECAAYFAkni/OUACgkQniDOoMHTA+mszQCYgI0vAT3ugyAZCX6vFha9RDWf cACWJsw0BkNsQIdzxl08gKGGbFe1yg== =msYe -----END PGP SIGNATURE----- --------------enigA15C9E6A143FD0A302547666--