On Wed, 09/24 05:44, Peter Maydell wrote: > On 24 September 2014 01:46, Fam Zheng <f...@redhat.com> wrote: > > On Wed, 09/24 07:20, Stefan Weil wrote: > >> Compiler warning (w32, w64): > >> > >> include/hw/virtio/virtio_ring.h:142:26: warning: > >> cast from pointer to integer of different size [-Wpointer-to-int-cast] > >> > >> When sizeof(long) < sizeof(void *), this is not only a warning but a > >> real program error. > >> > >> Add also missing blanks in the same statement. > >> > >> Signed-off-by: Stefan Weil <s...@weilnetz.de> > >> --- > >> > >> Peter, could you please apply this bug fix directly without pull request? > > Applied to master, thanks. > > >> diff --git a/include/hw/virtio/virtio_ring.h > >> b/include/hw/virtio/virtio_ring.h > >> index 8f58bc9..0b42e6e 100644 > >> --- a/include/hw/virtio/virtio_ring.h > >> +++ b/include/hw/virtio/virtio_ring.h > >> @@ -139,8 +139,8 @@ 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(uint16_t) > >> - + align-1) & ~(align - 1)); > >> + vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + > >> sizeof(uint16_t) > >> + + align - 1) & ~(align - 1)); > >> } > >> > >> static inline unsigned vring_size(unsigned int num, unsigned long align) > >> -- > >> 1.7.10.4 > >> > > > > That was from copy&paste /usr/include/linux/virtio_ring.h. The patch looks > > good > > to me, should linux also need this fix? > > In Linux the "long" type is always the same as the size of a pointer; > it's only Windows that went for the LLP64 model rather than LP64. >
Okay, Thanks for explaining! Fam