On 6/26/24 10:26 AM, Eric Auger wrote:
> In 94df5b2180d6 ("virtio-iommu: Fix 64kB host page size VFIO device
> assignment"), in case of bypass mode, we transiently enabled the
> IOMMU MR to allow the set_page_size_mask() to be called and pass
> information about the page size mask constraint of cold plugged
> VFIO devices. Now we do not use the IOMMU MR callback anymore, we
> can just get rid of this hack.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/virtio/virtio-iommu.c | 12 ------------
> 1 file changed, 12 deletions(-)
>
> diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
> index b24e10de81..f87359b3e7 100644
> --- a/hw/virtio/virtio-iommu.c
> +++ b/hw/virtio/virtio-iommu.c
> @@ -1385,18 +1385,6 @@ static void virtio_iommu_freeze_granule(Notifier *notifier, void *data)
> VirtIOIOMMU *s = container_of(notifier, VirtIOIOMMU, machine_done);
> int granule;
>
> - if (likely(s->config.bypass)) {
> - /*
> - * Transient IOMMU MR enable to collect page_size_mask requirements
> - * through memory_region_iommu_set_page_size_mask() called by
> - * VFIO region_add() callback
> - */
> - s->config.bypass = false;
> - virtio_iommu_switch_address_space_all(s);
> - /* restore default */
> - s->config.bypass = true;
> - virtio_iommu_switch_address_space_all(s);
> - }
> s->granule_frozen = true;
> granule = ctz64(s->config.page_size_mask);
> trace_virtio_iommu_freeze_granule(BIT_ULL(granule));