From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: [PATCH] kvm tools: Fix type mismatches on GCC 4.4 on 32-bit systems Date: Fri, 13 May 2011 10:19:09 +0200 Message-ID: <20110513081909.GA14603@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: KVM devel mailing list To: Pekka Enberg Return-path: Received: from mx3.mail.elte.hu ([157.181.1.138]:51753 "EHLO mx3.mail.elte.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757797Ab1EMITT (ORCPT ); Fri, 13 May 2011 04:19:19 -0400 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: =46YI, the tools/kvm build still fails on 32-bit: cc1: warnings being treated as errors qcow.c: In function =E2=80=98qcow1_write_sector=E2=80=99: qcow.c:307: error: comparison between signed and unsigned integer expr= essions make: *** [qcow.o] Error 1 make: *** Waiting for unfinished jobs.... using: gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) The patch below addresses them but i haven't tested it beyond checking = that it=20 builds. The double cast of userspace_addr is doubly sad - it highlights our 32-= bitness=20 problems which are visible in the guest_pfn_to_host() function as well. Thanks, Ingo --- Signed-off-by: Ingo Molnar diff --git a/tools/kvm/kvm.c b/tools/kvm/kvm.c index c69fcc4..e3f9d02 100644 --- a/tools/kvm/kvm.c +++ b/tools/kvm/kvm.c @@ -162,7 +162,7 @@ static void kvm_register_mem_slot(struct kvm *kvm, = u32 slot, u64 guest_phys, u64 .slot =3D slot, .guest_phys_addr =3D guest_phys, .memory_size =3D size, - .userspace_addr =3D (u64)userspace_addr, + .userspace_addr =3D (u64)(long)userspace_addr, }; =20 ret =3D ioctl(kvm->vm_fd, KVM_SET_USER_MEMORY_REGION, &mem); diff --git a/tools/kvm/qcow.c b/tools/kvm/qcow.c index 8e1b70d..bb2345c 100644 --- a/tools/kvm/qcow.c +++ b/tools/kvm/qcow.c @@ -295,7 +295,7 @@ static int qcow1_write_sector(struct disk_image *di= sk, u64 sector, void *src, u3 { struct qcow *q =3D disk->priv; struct qcow_header *header =3D q->header; - ssize_t nr_written; + u32 nr_written; char *buf; u64 offset; ssize_t nr;