From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LsZow-0003rG-Ay for qemu-devel@nongnu.org; Sat, 11 Apr 2009 05:48:18 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LsZor-0003nU-AN for qemu-devel@nongnu.org; Sat, 11 Apr 2009 05:48:17 -0400 Received: from [199.232.76.173] (port=56667 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LsZor-0003nF-4g for qemu-devel@nongnu.org; Sat, 11 Apr 2009 05:48:13 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:53546) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LsZoq-0003sw-HQ for qemu-devel@nongnu.org; Sat, 11 Apr 2009 05:48:12 -0400 Message-ID: <49E06754.8050906@web.de> Date: Sat, 11 Apr 2009 11:48:04 +0200 From: Jan Kiszka MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig2C16937B64B2403D05350932" Sender: jan.kiszka@web.de Subject: [Qemu-devel] [PATCH] kvm: Fix overlapping check for memory slots Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Glauber Costa , qemu-devel , kvm-devel This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig2C16937B64B2403D05350932 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable 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 slots. 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]; =20 - 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))) --------------enig2C16937B64B2403D05350932 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 iEYEARECAAYFAkngZ1kACgkQniDOoMHTA+m4FwCfYiJq6zX4m1ZtWOOJ5y7F2PLo 5V0AnAoegK4i0neFtm8svKETwh7pgShB =EPhA -----END PGP SIGNATURE----- --------------enig2C16937B64B2403D05350932--