Hi Paolo,
>> 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);
>
>
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 = htol
Since the assignment is causing a compiler warning, do exactly what is
done in libvhost-user.c to avoid the warning.
CC libvduse.o
libvduse.c: In function ‘vring_set_avail_event’:
libvduse.c:603:7: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-a