From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VVj9l-0002rF-M4 for qemu-devel@nongnu.org; Mon, 14 Oct 2013 10:30:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VVj9g-0002EO-Px for qemu-devel@nongnu.org; Mon, 14 Oct 2013 10:30:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:7801) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VVj9g-0002EJ-HZ for qemu-devel@nongnu.org; Mon, 14 Oct 2013 10:29:56 -0400 Date: Mon, 14 Oct 2013 17:32:25 +0300 From: "Michael S. Tsirkin" Message-ID: <20131014143225.GA6836@redhat.com> References: <1380481005-32399-1-git-send-email-sw@weilnetz.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1380481005-32399-1-git-send-email-sw@weilnetz.de> Subject: Re: [Qemu-devel] [PATCH] exec: Fix prototype of phys_mem_set_alloc and related functions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: Markus Armbruster , Alexander Graf , qemu-devel , Anthony Liguori , Richard Henderson On Sun, Sep 29, 2013 at 08:56:45PM +0200, Stefan Weil wrote: > phys_mem_alloc and its assigned values qemu_anon_ram_alloc and > legacy_s390_alloc must have identical argument lists. > > legacy_s390_alloc uses the size parameter to call mmap, so size_t is > good enough for all of them. > > This patch fixes compiler errors on i686 Linux hosts: > > CC alpha-softmmu/exec.o > exec.c:752:51: error: > initialization from incompatible pointer type [-Werror] > exec.c: In function 'qemu_ram_alloc_from_ptr': > exec.c:1139:32: error: > comparison of distinct pointer types lacks a cast [-Werror] > exec.c: In function 'qemu_ram_remap': > exec.c:1283:21: error: > comparison of distinct pointer types lacks a cast [-Werror] > > Signed-off-by: Stefan Weil Fixes build on 32 build boxes. Reviewed-by: Michael S. Tsirkin Tested-by: Michael S. Tsirkin Anthony could you apply this quickly? Broken builds are annoying ... > --- > exec.c | 4 ++-- > include/exec/exec-all.h | 2 +- > target-s390x/kvm.c | 4 ++-- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/exec.c b/exec.c > index 26681ce..1a08115 100644 > --- a/exec.c > +++ b/exec.c > @@ -749,14 +749,14 @@ static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end, > uint16_t section); > static subpage_t *subpage_init(AddressSpace *as, hwaddr base); > > -static void *(*phys_mem_alloc)(ram_addr_t size) = qemu_anon_ram_alloc; > +static void *(*phys_mem_alloc)(size_t size) = qemu_anon_ram_alloc; > > /* > * Set a custom physical guest memory alloator. > * Accelerators with unusual needs may need this. Hopefully, we can > * get rid of it eventually. > */ > -void phys_mem_set_alloc(void *(*alloc)(ram_addr_t)) > +void phys_mem_set_alloc(void *(*alloc)(size_t)) > { > phys_mem_alloc = alloc; > } > diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h > index 77242e2..50ecfd4 100644 > --- a/include/exec/exec-all.h > +++ b/include/exec/exec-all.h > @@ -368,7 +368,7 @@ static inline uintptr_t tcg_getra_ext(uintptr_t ra) > > #if !defined(CONFIG_USER_ONLY) > > -void phys_mem_set_alloc(void *(*alloc)(ram_addr_t)); > +void phys_mem_set_alloc(void *(*alloc)(size_t)); > > struct MemoryRegion *iotlb_to_region(hwaddr index); > bool io_mem_read(struct MemoryRegion *mr, hwaddr addr, > diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c > index 4923e0a..d229bdf 100644 > --- a/target-s390x/kvm.c > +++ b/target-s390x/kvm.c > @@ -93,7 +93,7 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = { > > static int cap_sync_regs; > > -static void *legacy_s390_alloc(ram_addr_t size); > +static void *legacy_s390_alloc(size_t size); > > int kvm_arch_init(KVMState *s) > { > @@ -325,7 +325,7 @@ int kvm_s390_get_registers_partial(CPUState *cs) > * to grow. We also have to use MAP parameters that avoid > * read-only mapping of guest pages. > */ > -static void *legacy_s390_alloc(ram_addr_t size) > +static void *legacy_s390_alloc(size_t size) > { > void *mem; > > -- > 1.7.10.4 >