On Fri, Jan 22, 2021 at 09:08:51PM +0100, Eugenio Pérez wrote:
> Cannot destroy address spaces of IOMMU-aware virtio devices without it,
> since they can contain memory listeners.
>
> 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) {
> --
> 2.27.0
>
Reviewed-by: Peter Xu <[email protected]>
CC stable, assuming that's what we need too.
Thanks,
--
Peter Xu