|
From: | Paolo Bonzini |
Subject: | Re: [PATCH v3 10/10] libvduse: Fix assignment in vring_set_avail_event |
Date: | Thu, 22 Dec 2022 09:09:38 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 |
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
[Prev in Thread] | Current Thread | [Next in Thread] |