[PATCH 0/6] iommu/s390: add support for IOMMU passthrough

Matthew Rosato
2024-12-09T19:24:18Z

This series introduces the ability for certain devices on s390 to bypass
a layer of IOMMU via the iommu.passthrough=1 option. In order to enable
this, the concept of an identity domain is added to s390-iommu. On s390,
IOMMU passthrough is only allowed if indicated via a special bit in s390
CLP data for the associated device group, otherwise we must fall back to
dma-iommu.

Matthew Rosato (6):
s390/pci: check for relaxed translation capability
s390: enable ARCH_HAS_PHYS_TO_DMA
iommu/s390: implement iommu passthrough via identity domain
iommu: add routine to check strict setting
iommu: document missing def_domain_type return
iommu/s390: implement def_domain_type

arch/s390/Kconfig | 1 +
arch/s390/include/asm/device.h | 12 ++++++
arch/s390/include/asm/dma-direct.h | 14 +++++++
arch/s390/include/asm/pci.h | 2 +-
arch/s390/include/asm/pci_clp.h | 4 +-
arch/s390/pci/pci.c | 6 ++-
arch/s390/pci/pci_bus.c | 2 +
arch/s390/pci/pci_clp.c | 1 +
drivers/iommu/iommu.c | 5 +++
drivers/iommu/s390-iommu.c | 65 ++++++++++++++++++++++++++++--
include/linux/iommu.h | 2 +
11 files changed, 107 insertions(+), 7 deletions(-)
create mode 100644 arch/s390/include/asm/device.h
create mode 100644 arch/s390/include/asm/dma-direct.h

--
2.47.0