virtio-iommu: Remove probe_done
authorEric Auger <eric.auger@redhat.com>
Tue, 16 Jul 2024 09:45:04 +0000 (11:45 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 23 Jul 2024 00:15:42 +0000 (20:15 -0400)
commit3745768918c2528f2b00b63bb3a764c458364f70
tree775b33139fc3aa28710457351dc287ed0d4e8d6a
parent935c3914184c4ebb1a4c545fc77fe2f0b24645c2
virtio-iommu: Remove probe_done

Now we have switched to PCIIOMMUOps to convey host IOMMU information,
the host reserved regions are transmitted when the PCIe topology is
built. This happens way before the virtio-iommu driver calls the probe
request. So let's remove the probe_done flag that allowed to check
the probe was not done before the IOMMU MR got enabled. Besides this
probe_done flag had a flaw wrt migration since it was not saved/restored.

The only case at risk is if 2 devices were plugged to a
PCIe to PCI bridge and thus aliased. First of all we
discovered in the past this case was not properly supported for
neither SMMU nor virtio-iommu on guest kernel side: see

[RFC] virtio-iommu: Take into account possible aliasing in virtio_iommu_mr()
https://lore.kernel.org/all/20230116124709.793084-1-eric.auger@redhat.com/

If this were supported by the guest kernel, it is unclear what the call
sequence would be from a virtio-iommu driver point of view.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20240716094619.1713905-3-eric.auger@redhat.com>
Tested-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/virtio/virtio-iommu.c
include/hw/virtio/virtio-iommu.h