All hardware that supports VT-d/AMD-Vi that exists also supports cx16 (aside
specifically crafted virtual machines).
Some IOMMU code paths in Xen consider cases where VT-d/AMD-Vi is supported
while cx16 isn't, those paths may be bugged and are barely tested, dead code
in practice.
Disable IOMMU in case we have IOMMU hardware but no cx16, then cleanup
no-cx16 handling logic from VT-d and AMD-Vi drivers. Also disable
interrupt remapping that also relies on cx16.
Teddy Astie (5):
VT-d: Disable IOMMU if cx16 isn't supported
AMD-Vi: Disable IOMMU if cx16 isn't supported
VT-d: Cleanup MAP_SINGLE_DEVICE and related code
VT-d: Disable intrerrupt remapping if cx16 is not supported
AMD-Vi: Disable intrerrupt remapping if cx16 is not supported
xen/drivers/passthrough/amd/iommu_intr.c | 6 ++
xen/drivers/passthrough/amd/iommu_map.c | 42 ++++------
xen/drivers/passthrough/amd/pci_amd_iommu.c | 6 ++
xen/drivers/passthrough/vtd/intremap.c | 70 +++++-----------
xen/drivers/passthrough/vtd/iommu.c | 92 +++++++--------------
xen/drivers/passthrough/vtd/vtd.h | 5 +-
6 files changed, 77 insertions(+), 144 deletions(-)
--
2.44.0
Teddy Astie | Vates XCP-ng Intern
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
specifically crafted virtual machines).
Some IOMMU code paths in Xen consider cases where VT-d/AMD-Vi is supported
while cx16 isn't, those paths may be bugged and are barely tested, dead code
in practice.
Disable IOMMU in case we have IOMMU hardware but no cx16, then cleanup
no-cx16 handling logic from VT-d and AMD-Vi drivers. Also disable
interrupt remapping that also relies on cx16.
Teddy Astie (5):
VT-d: Disable IOMMU if cx16 isn't supported
AMD-Vi: Disable IOMMU if cx16 isn't supported
VT-d: Cleanup MAP_SINGLE_DEVICE and related code
VT-d: Disable intrerrupt remapping if cx16 is not supported
AMD-Vi: Disable intrerrupt remapping if cx16 is not supported
xen/drivers/passthrough/amd/iommu_intr.c | 6 ++
xen/drivers/passthrough/amd/iommu_map.c | 42 ++++------
xen/drivers/passthrough/amd/pci_amd_iommu.c | 6 ++
xen/drivers/passthrough/vtd/intremap.c | 70 +++++-----------
xen/drivers/passthrough/vtd/iommu.c | 92 +++++++--------------
xen/drivers/passthrough/vtd/vtd.h | 5 +-
6 files changed, 77 insertions(+), 144 deletions(-)
--
2.44.0
Teddy Astie | Vates XCP-ng Intern
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech