On 12/9/24 2:25 PM, Matthew Rosato wrote: > The series extends the maximum table size allowed by s390-iommu by > increasing the number of table regions supported. It also adds logic to > construct the table use the minimum number of regions based upon aperture > calculation. > > Matthew Rosato (7): > iommu/s390: add initial fields to track table size > s390/pci: set appropriate IOTA region type > iommu/s390: add basic routines for region 1st and 2nd tables > iommu/s390: support cleanup of additional table regions > iommu/s390: support iova_to_phys for additional table regions > iommu/s390: support map/unmap for additional table regions > iommu/s390: allow larger region tables > > arch/s390/include/asm/pci.h | 2 + > arch/s390/include/asm/pci_dma.h | 3 + > arch/s390/pci/pci.c | 17 +- > drivers/iommu/s390-iommu.c | 289 +++++++++++++++++++++++++++++--- > 4 files changed, 285 insertions(+), 26 deletions(-) > One note: this series and 'iommu/s390: add support for IOMMU passthrough' have a minor merge conflict but are otherwise independent. If anyone would care to test with both series simultaneously here is the conflict resolution of merging this series on top of 'iommu/s390: add support for IOMMU passthrough': diff --cc arch/s390/pci/pci.c index 758b23331754,9f7adf913729..291a3ee4d059 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c @@@ -130,10 -146,7 +145,10 @@@ int zpci_register_ioat(struct zpci_dev fib.pal = limit + (1 << 12); else fib.pal = limit; - fib.iota = iota | zpci_get_iota_region_flag(zdev); + if (iota == 0) + fib.iota = iota; + else - fib.iota = iota | ZPCI_IOTA_RTTO_FLAG; ++ fib.iota = iota | zpci_get_iota_region_flag(zdev); fib.gd = zdev->gisa; cc = zpci_mod_fc(req, &fib, status); if (cc)