From 25280cfb49bafa5b015cf7f88c0ae93103c05782 Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Sun, 25 Oct 2009 15:28:53 +0200 Subject: [PATCH] --- yaml --- r: 167919 b: refs/heads/master c: 2d61ba95034f1abbdec7729d52c740870a5eddb6 h: refs/heads/master i: 167917: 61ced6b2f59a864d921231e12164f2ebfd937cda 167915: fbaac7a89a63a69c839aca0f0640201ab9abaf26 167911: 560f14bf7534ea76d5682d7abe5b6013abd536d3 167903: 986b4ec9624d45f4dacad159dfbf405644f1f067 v: v3 --- [refs] | 2 +- trunk/drivers/virtio/virtio_ring.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ce69aaf835c0..2095d7e5772f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0b22bd0ba0d500ab40e7673c591c594ec5447342 +refs/heads/master: 2d61ba95034f1abbdec7729d52c740870a5eddb6 diff --git a/trunk/drivers/virtio/virtio_ring.c b/trunk/drivers/virtio/virtio_ring.c index f53600580726..fbd2ecde93e4 100644 --- a/trunk/drivers/virtio/virtio_ring.c +++ b/trunk/drivers/virtio/virtio_ring.c @@ -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;