From 0e868e70221c6ba6d4709fdc443f8441102006da Mon Sep 17 00:00:00 2001 From: Marco Schlumpp Date: Wed, 30 Aug 2023 17:16:38 +0200 Subject: [PATCH] drivers/virtio: PR-#1076 Use correct type for vring_avail_event field Signed-off-by: Marco Schlumpp --- drivers/virtio/ring/include/virtio/virtio_ring.h | 4 +++- include/uk/essentials.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/virtio/ring/include/virtio/virtio_ring.h b/drivers/virtio/ring/include/virtio/virtio_ring.h index 78bafdf841..e5da3afeb5 100644 --- a/drivers/virtio/ring/include/virtio/virtio_ring.h +++ b/drivers/virtio/ring/include/virtio/virtio_ring.h @@ -157,7 +157,9 @@ 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) (*(__virtio16 *)&(vr)->used->ring[(vr)->num]) +typedef __virtio_le16 __may_alias __virtio_le16_ma; +#define vring_avail_event(vr) \ + (*(__virtio_le16_ma *)&(vr)->used->ring[(vr)->num]) static inline void vring_init(struct vring *vr, unsigned int num, uint8_t *p, unsigned long align) diff --git a/include/uk/essentials.h b/include/uk/essentials.h index 43c7ed30f4..22b8ae518f 100644 --- a/include/uk/essentials.h +++ b/include/uk/essentials.h @@ -99,6 +99,9 @@ extern "C" { #ifndef __check_result #define __check_result __attribute__((warn_unused_result)) #endif +#ifndef __may_alias +#define __may_alias __attribute__((may_alias)) +#endif #ifndef __alias #define __alias(old, new) \