[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] linux-headers: Fix type cast warning for 64 bit Min
From: |
Stefan Weil |
Subject: |
[Qemu-devel] [PATCH] linux-headers: Fix type cast warning for 64 bit MinGW-w64 |
Date: |
Tue, 8 Sep 2015 21:11:25 +0200 |
Type casts from pointers to unsigned long don't work on 64 bit Windows
because both types have different size.
Compiler warning:
include/standard-headers/linux/virtio_ring.h:146:23:
warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + ...
^
Signed-off-by: Stefan Weil <address@hidden>
---
This is a modification of a Linux header file,
something we usually try to avoid.
I did not succeed in removing this header from compilations
for Windows (which would have been the best solution).
Nor do I expect that Linux would accept a patch which
modifies code to better support compilations for Windows.
Are there other possibilities how this could be handled?
Regards
Stefan
include/standard-headers/linux/virtio_ring.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/standard-headers/linux/virtio_ring.h
b/include/standard-headers/linux/virtio_ring.h
index 6fe276f..3d531f7 100644
--- a/include/standard-headers/linux/virtio_ring.h
+++ b/include/standard-headers/linux/virtio_ring.h
@@ -143,7 +143,7 @@ static inline void vring_init(struct vring *vr, unsigned
int num, void *p,
vr->num = num;
vr->desc = p;
vr->avail = p + num*sizeof(struct vring_desc);
- vr->used = (void *)(((unsigned long)&vr->avail->ring[num] +
sizeof(__virtio16)
+ vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] +
sizeof(__virtio16)
+ align-1) & ~(align - 1));
}
--
2.1.4
- [Qemu-devel] [PATCH] linux-headers: Fix type cast warning for 64 bit MinGW-w64,
Stefan Weil <=