On 2021/1/23 上午4:08, Eugenio Pérez wrote:
Cannot destroy address spaces of IOMMU-aware virtio devices without it, since they can contain memory listeners.
It's better to explain why the one in finalize doesn't work here. Thanks
Fixes: c611c76417f ("virtio: add MemoryListener to cache ring translations") Buglink: https://bugs.launchpad.net/qemu/+bug/1912846 Signed-off-by: Eugenio Pérez <[email protected]> --- hw/virtio/virtio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index b308026596..67efd2c301 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3680,6 +3680,7 @@ static void virtio_device_unrealize(DeviceState *dev) VirtIODevice *vdev = VIRTIO_DEVICE(dev); VirtioDeviceClass *vdc = VIRTIO_DEVICE_GET_CLASS(dev);+ memory_listener_unregister(&vdev->listener);virtio_bus_device_unplugged(vdev);if (vdc->unrealize != NULL) {
