Message ID | 1380481005-32399-1-git-send-email-sw@weilnetz.de |
---|---|
State | Accepted |
Headers | show |
Stefan Weil <sw@weilnetz.de> writes: > 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 <sw@weilnetz.de> Reviewed-by: Markus Armbruster <armbru@redhat.com>
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 <sw@weilnetz.de> Fixes build on 32 build boxes. Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Michael S. Tsirkin <mst@redhat.com> 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 >
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;
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 <sw@weilnetz.de> --- exec.c | 4 ++-- include/exec/exec-all.h | 2 +- target-s390x/kvm.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-)