From 23958fc05fe76b0d91e156da0a3b5619c81fe3c0 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 7 Apr 2017 18:25:24 -0700 Subject: virtio: Redefine vring_avail_event MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Redefine vring_avail_event to avoid accessing ring.id as a 16bit integer and breaking the C aliasing rules. This fixes a build warning: virtio/virtqueue.c: In function ‘vq_ring_must_notify_host’: virtio/virtqueue.c:658:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] event_idx = vring_avail_event(&vq->vq_ring); ^ No functional change. Signed-off-by: Edgar E. Iglesias Signed-off-by: Wendy Liang Signed-off-by: Stefan Agner --- middleware/multicore/open-amp/virtio/virtio_ring.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/multicore/open-amp/virtio/virtio_ring.h b/middleware/multicore/open-amp/virtio/virtio_ring.h index 5bea08b..fc3eb08 100644 --- a/middleware/multicore/open-amp/virtio/virtio_ring.h +++ b/middleware/multicore/open-amp/virtio/virtio_ring.h @@ -121,7 +121,7 @@ struct vring { * versa. They are at the end for backwards compatibility. */ #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) -#define vring_avail_event(vr) (*(uint16_t *)&(vr)->used->ring[(vr)->num]) +#define vring_avail_event(vr) ((vr)->used->ring[(vr)->num].id & 0xFFFF) static inline int vring_size(unsigned int num, unsigned long align) -- cgit v1.2.3