diff mbox

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

Message ID 20170324212115.6772-1-Andrew.Baumann@microsoft.com
State New
Headers show

Commit Message

Andrew Baumann March 24, 2017, 9:21 p.m. UTC
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(-)

Comments

Eric Blake March 24, 2017, 10:20 p.m. UTC | #1
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>
Andrew Baumann March 24, 2017, 11:11 p.m. UTC | #2
> 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
diff mbox

Patch

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;