aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2024-07-01 10:48:59 +0200
committerCédric Le Goater <clg@redhat.com>2024-07-09 11:50:37 +0200
commit956b30b9cf856470612e8d2c2c4985fb7e40a970 (patch)
treef73109a0dd89df96faa8ed85c1f66c52edeadad7
parent2457343d05a168963b52ab6d5c2932dd29b93f46 (diff)
downloadqemu-956b30b9cf856470612e8d2c2c4985fb7e40a970.zip
qemu-956b30b9cf856470612e8d2c2c4985fb7e40a970.tar.gz
qemu-956b30b9cf856470612e8d2c2c4985fb7e40a970.tar.bz2
virtio-iommu: Revert transient enablement of IOMMU MR in bypass mode
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> Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/virtio/virtio-iommu.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
index 76f34ea..33ae61c 100644
--- a/hw/virtio/virtio-iommu.c
+++ b/hw/virtio/virtio-iommu.c
@@ -1430,18 +1430,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));