Collection of iova tree fixes detected preparing live migration with real devices and multiqueue.
These cannot be triggered in simple setups (vdpa_sim_net, no display, no device reset with different features) but it's possible to trigger them with real devices or if the kernel fails some step like memory mapping / unmapping. First two patches are already in the list at [1]. Last one is not a fix by itself but a straightforward merge of the same code. [1] https://lists.nongnu.org/archive/html/qemu-devel/2022-08/msg00773.html v2: * Accept iova_tree_remove map arg by value * Add error message on unmap fail Eugenio Pérez (7): vdpa: Skip the maps not in the iova tree vdpa: do not save failed dma maps in SVQ iova tree util: accept iova_tree_remove_parameter by value vdpa: Remove SVQ vring from iova_tree at shutdown vdpa: Make SVQ vring unmapping return void vhost: Always store new kick fd on vhost_svq_set_svq_kick_fd vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring hw/virtio/vhost-iova-tree.h | 2 +- include/qemu/iova-tree.h | 2 +- hw/i386/intel_iommu.c | 6 +-- hw/virtio/vhost-iova-tree.c | 2 +- hw/virtio/vhost-shadow-virtqueue.c | 4 +- hw/virtio/vhost-vdpa.c | 75 ++++++++++++++++-------------- net/vhost-vdpa.c | 4 +- util/iova-tree.c | 4 +- 8 files changed, 51 insertions(+), 48 deletions(-) -- 2.31.1