[Qemu-devel] [PATCH v2] virtio: fix vring_align() on 64-bit win32 platforms

Andrew Baumann posted 1 patch 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170324212115.6772-1-Andrew.Baumann@microsoft.com
Test checkpatch passed
Test docker passed
Test s390x passed
include/hw/virtio/virtio.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH v2] virtio: fix vring_align() on 64-bit win32 platforms
Posted by Andrew Baumann 7 years ago
long is 32-bits on win32, which caused the top half of the address to
be truncated; this patch changes it to use the QEMU_ALIGN_UP macro
which does not suffer the same problem

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
---
 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..7b6edba 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 QEMU_ALIGN_UP(addr, align);
 }
 
 typedef struct VirtQueue VirtQueue;
-- 
2.8.3


Re: [Qemu-devel] [PATCH for-2.9 v2] virtio: fix vring_align() on 64-bit win32 platforms
Posted by Eric Blake 7 years ago
On 03/24/2017 04:21 PM, Andrew Baumann wrote:

So is 'win32' really a 64-bit platform, or should the subject be '64-bit
windows'?

> long is 32-bits on win32, which caused the top half of the address to
> be truncated; this patch changes it to use the QEMU_ALIGN_UP macro
> which does not suffer the same problem
> 
> Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
> ---
>  include/hw/virtio/virtio.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Re: [Qemu-devel] [PATCH for-2.9 v2] virtio: fix vring_align() on 64-bit win32 platforms
Posted by Andrew Baumann 7 years ago
> From: Eric Blake [mailto:eblake@redhat.com]
> Sent: Friday, 24 March 2017 15:20

> So is 'win32' really a 64-bit platform, or should the subject be '64-bit
> windows'?

Sigh. Yes, ok, it's a little silly if you put it like that. I guess I was thinking of the _WIN32 ifdef and the files named *win32.

I'll send you a v3...

Andrew