vhost: adapt vhost_verify_ring_mappings() to virtio 1 ring layout
commitf1f9e6c5961ffb36fd4a81cd7edcded7bfad2ab2
authorGreg Kurz <groug@kaod.org>
Fri, 4 Nov 2016 08:39:15 +0000 (4 09:39 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 15 Nov 2016 15:20:38 +0000 (15 17:20 +0200)
tree5342f6199008f1a422769739bc9237629d6d6439
parentcb88ebd7542458c22f3051646f268dcea6109abc
vhost: adapt vhost_verify_ring_mappings() to virtio 1 ring layout

With virtio 1, the vring layout is split in 3 separate regions of
contiguous memory for the descriptor table, the available ring and the
used ring, as opposed with legacy virtio which uses a single region.

In case of memory re-mapping, the code ensures it doesn't affect the
vring mapping. This is done in vhost_verify_ring_mappings() which assumes
the device is legacy.

This patch changes vhost_verify_ring_mappings() to check the mappings of
each part of the vring separately.

This works for legacy mappings as well.

Cc: qemu-stable@nongnu.org
Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/virtio/vhost.c
include/hw/virtio/vhost.h