On 12/21/22 14:10, Marcel Holtmann wrote:
static inline void vring_set_avail_event(VduseVirtq *vq, uint16_t val)
{
- *((uint16_t *)&vq->vring.used->ring[vq->vring.num]) = htole16(val);
+ uint16_t *avail;
+
+ avail = (uint16_t *)&vq->vring.used->ring[vq->vring.num];
+ *avail = htole16(val);
That this doesn't warn is basically a compiler bug. Please use memcpy instead, i.e. uint16_t val_le = htole16(val); memcpy(&vq->vring.used->ring[vq->vring.num]), &val_le, sizeof(uint16_t)); Paolo
