diff options
Diffstat (limited to 'drivers/virtio/virtio_ring.c')
-rw-r--r-- | drivers/virtio/virtio_ring.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index f53600580726..fbd2ecde93e4 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c | |||
@@ -285,6 +285,9 @@ static void *vring_get_buf(struct virtqueue *_vq, unsigned int *len) | |||
285 | return NULL; | 285 | return NULL; |
286 | } | 286 | } |
287 | 287 | ||
288 | /* Only get used array entries after they have been exposed by host. */ | ||
289 | rmb(); | ||
290 | |||
288 | i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id; | 291 | i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id; |
289 | *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len; | 292 | *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len; |
290 | 293 | ||