[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] virtio: fix vring_align() on 64-bit win32 platf
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH] virtio: fix vring_align() on 64-bit win32 platforms |
Date: |
Tue, 21 Mar 2017 17:51:51 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 03/21/2017 05:31 PM, Andrew Baumann wrote:
> "long" is 32-bits on win32, but we need to promote it to a 64-bit hwaddr
> before negating, or else the top half of the address is truncated
>
> Signed-off-by: Andrew Baumann <address@hidden>
> ---
> include/hw/virtio/virtio.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index 15efcf2..a0a8543 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -34,7 +34,7 @@ struct VirtQueue;
> static inline hwaddr vring_align(hwaddr addr,
> unsigned long align)
> {
> - return (addr + align - 1) & ~(align - 1);
> + return (addr + align - 1) & ~(hwaddr)(align - 1);
Why not just use the QEMU_ALIGN_DOWN macro, instead of open-coding it?
(Hmm - a good BiteSized task might be to come up with a Coccinelle
script to help replace all open-coded rounding functions with
appropriate macro calls instead)
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature