vdpa: rewind at get_base, not set_base
authorEugenio Pérez <eperezma@redhat.com>
Fri, 3 Mar 2023 17:24:35 +0000 (18:24 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 7 Mar 2023 17:38:59 +0000 (12:38 -0500)
commit4241e8bd728f1014ac977eb6756e41f549d93efd
treec4db4aaf84a64a4476d04d51b274898a898308e0
parentd83b4945805d68f47742f70bba2ea4d5c9880dc8
vdpa: rewind at get_base, not set_base

At this moment it is only possible to migrate to a vdpa device running
with x-svq=on. As a protective measure, the rewind of the inflight
descriptors was done at the destination. That way if the source sent a
virtqueue with inuse descriptors they are always discarded.

Since this series allows to migrate also to passthrough devices with no
SVQ, the right thing to do is to rewind at the source so the base of
vrings are correct.

Support for inflight descriptors may be added in the future.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20230303172445.1089785-5-eperezma@redhat.com>
Tested-by: Lei Yang <leiyang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/virtio/vhost-shadow-virtqueue.c
hw/virtio/vhost-vdpa.c