New upstream version 18.11.1
[deb_dpdk.git] / lib / librte_vhost / vhost.h
index 5218f1b..552b929 100644 (file)
@@ -393,8 +393,10 @@ vq_is_packed(struct virtio_net *dev)
 static inline bool
 desc_is_avail(struct vring_packed_desc *desc, bool wrap_counter)
 {
-       return wrap_counter == !!(desc->flags & VRING_DESC_F_AVAIL) &&
-               wrap_counter != !!(desc->flags & VRING_DESC_F_USED);
+       uint16_t flags = *((volatile uint16_t *) &desc->flags);
+
+       return wrap_counter == !!(flags & VRING_DESC_F_AVAIL) &&
+               wrap_counter != !!(flags & VRING_DESC_F_USED);
 }
 
 #define VHOST_LOG_PAGE 4096