]> Pileus Git - ~andy/linux/blobdiff - drivers/virtio/virtio_ring.c
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[~andy/linux] / drivers / virtio / virtio_ring.c
index f536005807269728f3285f7bbf6f176cd790e5c2..fbd2ecde93e409ea9287d068d3f2322297c910cc 100644 (file)
@@ -285,6 +285,9 @@ static void *vring_get_buf(struct virtqueue *_vq, unsigned int *len)
                return NULL;
        }
 
+       /* Only get used array entries after they have been exposed by host. */
+       rmb();
+
        i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id;
        *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len;