Displaying 2 results from an estimated 2 matches for "get_lowflat".
2013 Apr 05
1
Bug in SeaBIOS virtio-ring handling bug with vhost-scsi-pci
...lks..
WDYT..?
--nab
diff --git a/src/virtio-ring.c b/src/virtio-ring.c
index bddb090..e046141 100644
--- a/src/virtio-ring.c
+++ b/src/virtio-ring.c
@@ -35,10 +35,16 @@
int vring_more_used(struct vring_virtqueue *vq)
{
+ struct vring *vr = &vq->vring;
struct vring_used *used = GET_LOWFLAT(vq->vring.used);
int more = GET_LOWFLAT(vq->last_used_idx) != GET_LOWFLAT(used->idx);
/* Make sure ring reads are done after idx read above. */
smp_rmb();
+
+ /* Huh..? vr->num is somehow changing from below us..? */
+ if (GET_LOWFLAT(vr->num) != MAX_QUEUE_NUM)...
2013 Apr 05
1
Bug in SeaBIOS virtio-ring handling bug with vhost-scsi-pci
...lks..
WDYT..?
--nab
diff --git a/src/virtio-ring.c b/src/virtio-ring.c
index bddb090..e046141 100644
--- a/src/virtio-ring.c
+++ b/src/virtio-ring.c
@@ -35,10 +35,16 @@
int vring_more_used(struct vring_virtqueue *vq)
{
+ struct vring *vr = &vq->vring;
struct vring_used *used = GET_LOWFLAT(vq->vring.used);
int more = GET_LOWFLAT(vq->last_used_idx) != GET_LOWFLAT(used->idx);
/* Make sure ring reads are done after idx read above. */
smp_rmb();
+
+ /* Huh..? vr->num is somehow changing from below us..? */
+ if (GET_LOWFLAT(vr->num) != MAX_QUEUE_NUM)...