"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 <andrew.baum...@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..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); } typedef struct VirtQueue VirtQueue; -- 2.7.4