qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] virtio: Fix wrong type cast from pointer to lon


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH] virtio: Fix wrong type cast from pointer to long
Date: Thu, 25 Sep 2014 09:12:42 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

On Wed, 09/24 05:44, Peter Maydell wrote:
> On 24 September 2014 01:46, Fam Zheng <address@hidden> 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 <address@hidden>
> >> ---
> >>
> >> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]