[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-5.1?] util/pagesize: Make qemu_real_host_page_size of typ
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH-for-5.1?] util/pagesize: Make qemu_real_host_page_size of type size_t |
Date: |
Thu, 30 Jul 2020 16:11:37 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 7/30/20 3:59 PM, Philippe Mathieu-Daudé wrote:
> We use different types to hold 'qemu_real_host_page_size'.
> Unify picking 'size_t' which seems the best candidate.
>
> Doing so fix a format string issue in hw/virtio/virtio-mem.c
> reported when building with GCC 4.9.4:
>
> hw/virtio/virtio-mem.c: In function ‘virtio_mem_set_block_size’:
> hw/virtio/virtio-mem.c:756:9: error: format ‘%x’ expects argument of type
> ‘unsigned int’, but argument 7 has type ‘uintptr_t’ [-Werror=format=]
> error_setg(errp, "'%s' property has to be at least 0x%" PRIx32, name,
> ^
>
> Fixes: 910b25766b ("virtio-mem: Paravirtualized memory hot(un)plug")
> Reported-by: Bruce Rogers <brogers@suse.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> include/exec/ram_addr.h | 4 ++--
> include/qemu/osdep.h | 2 +-
> accel/kvm/kvm-all.c | 3 ++-
> block/qcow2-cache.c | 2 +-
> exec.c | 8 ++++----
> hw/ppc/spapr_pci.c | 2 +-
> hw/virtio/virtio-mem.c | 2 +-
> migration/migration.c | 2 +-
> migration/postcopy-ram.c | 2 +-
> monitor/misc.c | 2 +-
> util/pagesize.c | 2 +-
> 11 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
> index 3ef729a23c..e07532266e 100644
> --- a/include/exec/ram_addr.h
> +++ b/include/exec/ram_addr.h
> @@ -93,8 +93,8 @@ static inline unsigned long int
> ramblock_recv_bitmap_offset(void *host_addr,
>
> bool ramblock_is_pmem(RAMBlock *rb);
>
> -long qemu_minrampagesize(void);
> -long qemu_maxrampagesize(void);
> +size_t qemu_minrampagesize(void);
> +size_t qemu_maxrampagesize(void);
>
> /**
> * qemu_ram_alloc_from_file,
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index 20872e793e..619b8a7a8c 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -635,10 +635,10 @@ char *qemu_get_pid_name(pid_t pid);
> */
> pid_t qemu_fork(Error **errp);
>
> +extern size_t qemu_real_host_page_size;
> /* Using intptr_t ensures that qemu_*_page_mask is sign-extended even
> * when intptr_t is 32-bit and we are aligning a long long.
> */
> -extern uintptr_t qemu_real_host_page_size;
> extern intptr_t qemu_real_host_page_mask;
>
This is incomplete as I missed to make QEMU_VMALLOC_ALIGN unsigned...
I'll respin.